资料来源:http://bbs.youkuaiyun.com/topics/300070928
if not object_id('Tab') is null
drop table Tab
Go
Create table Tab([Col1] int,[COl2] nvarchar(5))
Insert Tab
select 1,N'a,b,c' union all
select 2,N'd,e' union all
select 3,N'a,f'
Go
select
a.COl1,b.Col2
from
(select Col1,COl2=convert(xml,'<root><v>'+replace(COl2,',','</v><v>')+'</v></root>') from Tab)a
outer apply
(select Col2=C.v.value('.','nvarchar(100)') from a.COl2.nodes('/root/v')C(v))b运行结果:
(3 行受影响)
COl1 Col2
----------- ----------------------------------------------------------------------------------------------------
1 a
1 b
1 c
2 d
2 e
3 a
3 f
(7 行受影响)
本文介绍了一种使用 SQL Server 的 XML 功能将逗号分隔的字符串转换为多行记录的方法。通过创建临时表并利用 XML 转换及 outer apply 函数,实现了将单个字段中的多个值分离到不同行的技术。
5214

被折叠的 条评论
为什么被折叠?



