SQL 多行数据合并列 列数据分拆多行

--多行数据合并列

SELECT B.主号,LEFT(副号列表,LEN(副号列表)-1)  as 副号列表 FROM ( SELECT 主号, (SELECT 副号+',' FROM tmp3 WHERE 主号=A.主号 FOR XML PATH('')) AS 副号列表 FROM tmp3 A GROUP BY 主号 )B

--列数据分拆多行

SELECT A.主号,B.value as 副号 FROM (
 SELECT Id,[副号列表] = CONVERT(xml,'<root><v>'+REPLACE([副号列表],' ,','</v><v>')+'</v></root>')FROM AB
) A OUTER APPLY (
 SELECT value = N.v.value ('.','varchar(100)') FROM A.[副号列表].nodes ('/root/v') N( v)
) B

posted @ 2013-06-28 15:29  youan  阅读(253)  评论(0编辑  收藏  举报