首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一存储过程 急解决思路

2012-01-29 
求一存储过程 急!!!有一个表如下姓名选修课程张三篮球/健美操李四足球/乒乓球王五篮球/乒乓球/足球赵六健

求一存储过程 急!!!
有一个表如下
姓名       选修课程
张三       篮球/健美操
李四       足球/乒乓球
王五       篮球/乒乓球/足球
赵六       健美操/足球/篮球


要求能够查询出以下结果
选修篮球、足球等各课程学生名单表如下:
姓名       选修课程
张三       篮球
王五       篮球
赵六       篮球


姓名       选修课程
李四       足球
王五       足球
赵六       足球

并将这些表批量导入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

热点排行