转换列值分组逗号分隔的字符串
问题描述:
答
答
SELECT DISTINCT
ID,
Names = REPLACE(STUFF(
(
SELECT ',' + Name AS [data()]
FROM dbo.Table AS x
WHERE x.ID = t.ID
ORDER BY Name
FOR XML PATH ('')
), 1, 1, ''), ' ,', ',')
FROM dbo.Table AS t
ORDER BY ID;
+0
这真的很整洁,谢谢 – IThasTheAnswer
'消息4104,级别16,状态1,行1 多部分标识符“iq.name”无法绑定。' –
@Aaron,哎呀,我在更改表名的同时打字,固定! – Blindy
这也会产生一个额外的尾随逗号。你可以用'REPLACE'(如我的答案)或者先把逗号先用'STUFF((select','+ itbl.name ...),1,1,'');' –