--多行数据合并列
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