SQL Server:GROUP BY子句获取逗号分隔的值

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
 
原文地址:https://www.cnblogs.com/lihaishu/p/14242342.html