SQL Server:GROUP BY子句获取逗号分隔的值
原始数据为以下数据:
ID ReportId Email 1 1 a@a.com 2 2 b@b.com 3 1 c@c.com 4 3 d@d.com 5 3 e@e.com
我们要分组将相同的内容逗号分隔放一列中,结果应为:
ReportId Email
1 a@a.com, c@c.com
2 b@b.com
3 d@d.com, e@e.com
使用FOR XML PATH构造来执行语句:
SELECT ReportId, Email =
STUFF((SELECT ', ' + Email
FROM your_table b
WHERE b.ReportId = a.ReportId
FOR XML PATH('')), 1, 2, '')
FROM your_table a
GROUP BY ReportId