假如在SQL有一个这样的表:
a b
205 202001,204001,206001
302 301001,301002
现在要把它变成一个这样的表:
a b
205 202001
205 204001
205 206001
302 301001
302 301002
怎么实现?
谢谢了!!
假如在SQL有一个这样的表:
a b
205 202001,204001,206001
302 301001,301002
现在要把它变成一个这样的表:
a b
205 202001
205 204001
205 206001
302 301001
302 301002
怎么实现?
谢谢了!!
写一个存储过程来实现
先用游标逐行读出数据, 然后用一个循环: charindex 函数找到逗号,(只要能找到逗号就继续循环), 用substring读出逗号之前的数据 然后插入到新表
把游标遍历一次 就实现了
写一个存储过程来实现
先用游标逐行读出数据, 然后用一个循环: charindex 函数找到逗号,(只要能找到逗号就继续循环), 用substring读出逗号之前的数据 然后插入到新表
把游标遍历一次 就实现了
写出来啊,学习下,你这么说我还是不懂啊
select top 8000 a=identity(int) into # from syscolumns a,syscolumns b
select a.a,b=substring(a.b,b.a,charindex(',',a.b+',',b.a)-b.a)
from bb a,# b
where len(a.b)>b.a
and substring(','+a.b,b.a,1)=','
and substring(a.b,b.a,1)<>','
order by a.a,b.a
drop table #
go
[此贴子已经被作者于2007-8-22 19:07:07编辑过]
select top 8000 a=identity(int) into # from syscolumns a,syscolumns b
select a.a,b=substring(a.b,b.a,charindex(',',a.b+',',b.a)-b.a)
from bb a,# b
where len(a.b)>b.a
and substring(','+a.b,b.a,1)=','
and substring(a.b,b.a,1)<>','
order by a.a,b.a
drop table #
go
楼上的大哥,这样就可以了吗,不要用游标吗?有点看不懂.能不能在指点一下,多谢
select top 8000 a=identity(int) into # from syscolumns a,syscolumns b
select a.a,b=substring(a.b,b.a,charindex(',',a.b+',',b.a)-b.a)
from bb a,# b
where len(a.b)>b.a
and substring(','+a.b,b.a,1)=','
and substring(a.b,b.a,1)<>','
order by a.a,b.a
drop table #
go
楼上的大哥,谢谢你了,结果是正确的,只是有一点不懂,这里面没有用到循环语句,怎么实现循环的呢?
想交个朋友,我的QQ是:43937783,到深圳南山这边的话我请你们吃饭