求一存储过程 急!!!
有一个表如下
姓名 选修课程
张三 篮球/健美操
李四 足球/乒乓球
王五 篮球/乒乓球/足球
赵六 健美操/足球/篮球
要求能够查询出以下结果
选修篮球、足球等各课程学生名单表如下:
姓名 选修课程
张三 篮球
王五 篮球
赵六 篮球
姓名 选修课程
李四 足球
王五 足球
赵六 足球
并将这些表批量导入Access数据库
[解决办法]
---例子
declare @str varchar(1000)
set @str= '篮球 '
select * from 表 where charindex( '/ '+@str+ '/ ', '/ '+选修课程+ '/ ')> 0
[解决办法]
--先寫出查詢的存儲過程
Create ProceDure SP_TEST(@选修课程 Nvarchar(20))
As
Begin
Select 姓名, @选修课程 As 选修课程 From 表 Where CharIndex(@选修课程, 选修课程) > 0
End
GO
---調用
EXEC SP_TEST N '篮球 '
EXEC SP_TEST N '足球 '
GO
[解决办法]
select name, '篮球 '
from table where charindex( '篮球 ',type)> 0
select name, '足球 '
from table where charindex( '足球 ',type)> 0
[解决办法]
select 姓名, 选修课程= '篮球 ' from 表 where charindex( '篮球 ', 选修课程) > 0
select 姓名, 选修课程= '足球 ' from 表 where charindex( '足球 ', 选修课程) > 0
[解决办法]
insert into t
from
(
select 姓名, 选修课程= '篮球 ' from 表 where charindex( '/ '+ '篮球 '+ '/ ', '/ '+选修课程+ '/ ') > 0
union all
select 姓名, 选修课程= '足球 ' from 表 where charindex( '/ '+ '足球 '+ '/ ', '/ '+ 选修课程+ '/ ') > 0
)a