SQL2005实现列折解成多行

 /*参考爱新觉罗.毓华

ID         col
1       aa,bb,cc,dd,ee
2       aaa,bbb,ccc
3       aaaa,bbbb

得到如下结果:
Id     Col
--- -------
1      aa
1      bb
1      cc
1      dd
1      ee
2      aaa
2      bbb
2      ccc
3      aaaa
3      bbbb
---------------------
*/

create table #mytb(Id int,col varchar(100))
insert into #mytb values(1,'aa,bb,cc,dd,ee')
insert into #mytb values(2,'aaa,bbb,ccc')
insert into #mytb values(3,'aaaa,bbbb')

--
select Id,B.col
from(
 select Id,col=convert(xml,'<root><v>' + replace(col, ',', '</v><v>') + '</v></root>') from #mytb
)A
outer apply(
 select col = N.v.value('.', 'varchar(100)') from A.col.nodes('/root/v') N(v)
)B

drop table #mytb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值