有一个表如下
姓名 选修课程
张三 篮球/健美操
李四 足球/乒乓球
王五 篮球/乒乓球/足球
赵六 健美操/足球/篮球
要求能够查询出以下结果
选修篮球、足球等各课程学生名单表如下:
姓名 选修课程
张三 篮球
王五 篮球
赵六 篮球
姓名 选修课程
李四 足球
王五 足球
赵六 足球并将这些表批量导入Access数据库
姓名 选修课程
张三 篮球/健美操
李四 足球/乒乓球
王五 篮球/乒乓球/足球
赵六 健美操/足球/篮球
要求能够查询出以下结果
选修篮球、足球等各课程学生名单表如下:
姓名 选修课程
张三 篮球
王五 篮球
赵六 篮球
姓名 选修课程
李四 足球
王五 足球
赵六 足球并将这些表批量导入Access数据库
解决方案 »
- 关于数据行列转换的问题[再发]
- 差异备份的文件为什么都那么大
- 现在有一个数据库A,如何通过脚本,制作一个数据库A的副本数据库B,数据库B中无数据,就是类似sql企业管理器中的那个脚本生成器的那个东西
- 请教一个事务的写法是否有问题,请进看例子!在线等,确认马上结贴
- 在sql server中如何获得表名和字段名?
- 关于试图创建了但调用老是有红线的问题
- 刚开始看书,请问 CREATE DATABASE MYDB 语句输入到哪里?
- ODBC连接中客户端设置里NAME PIPES和TCP/IP的问题
- 关于insert语句的返回值
- 在触发器中的变量老提示要声明变量的问题 急疯了??
- 关于按周统计的问题
- sqlserver2000无法“新建数据库关系图”,显示“无效的类别字符串”,如何解决?在线等
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
from table where charindex('篮球',type)>0select name,'足球'
from table where charindex('足球',type)>0
--以下代碼測試OK --創建測試環境
Create Table 表
(姓名 Nvarchar(20),
选修课程 Nvarchar(200))
--插入數據
Insert 表 Select N'张三', N'篮球/健美操'
Union All Select N'李四', N'足球/乒乓球'
Union All Select N'王五', N'篮球/乒乓球/足球'
Union All Select N'赵六', N'健美操/足球/篮球'
GO
--創建存儲過程
Create ProceDure SP_TEST(@选修课程 Nvarchar(20))
As
Begin
Insert Into OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'D:\表.mdb' ; 'admin'; '', 表)
Select 姓名, @选修课程 As 选修课程 From TEST.dbo.表
Where CharIndex(@选修课程, 选修课程) > 0
End
GO
--測試
EXEC SP_TEST N'篮球'
EXEC SP_TEST N'足球'
GO
--刪除測試環境
Drop Table 表
Drop ProceDure SP_TEST
select 姓名, 选修课程='足球' from 表 where charindex('足球', 选修课程) > 0
create table tb(姓名 varchar(10),选修课程 varchar(1000))
insert tb
select '张三','篮球/健美操'
union select '李四','足球/乒乓球'
union select '王五','篮球/乒乓球/足球'
union select '赵六','健美操/足球/篮球'go create proc p1 @str varchar(1000)
asdeclare @sql varchar(1000)
set @sql='select 姓名,选修课程='''+@str+''' from tb where charindex(''/''+'''+@str+'''+''/'',''/''+选修课程+''/'')>0'
exec(@sql)go exec p1 '篮球'drop proc p1
drop table tb
from
(
select 姓名, 选修课程='篮球' from 表 where charindex('/'+'篮球'+'/', '/'+选修课程+'/') > 0
union all
select 姓名, 选修课程='足球' from 表 where charindex('/'+'足球'+'/','/'+ 选修课程+'/') > 0
)a