使用OUTER APPLY将列内容根据逗号分隔,拆分成列表
创建临时数据
with m as ( select '数字'TypeGroup,'1,2,3,4,5,6,7,8,9' info union all select '字母' TypeGroup,'a,b,c,d,e,f,g,h,i' info )select * into #temp from m
查询临时数据
select * from #temp
使用 OUTER APPLY将列内容根据逗号分隔,拆分成列表
SELECT A.TypeGroup,B.info FROM( select TypeGroup, CONVERT(xml,'<root><v>' + REPLACE(info, ',', '</v><v>') + '</v></root>') as info from #temp(nolock) )A OUTER APPLY( SELECT info = N.c.value('.', 'varchar(8000)') FROM A.info.nodes('/root/v') N(c) )B drop table #temp