SQL Server:GROUP BY子句获取逗号分隔值
可能重复:
SQL Server中的SQL group_concat函数
我期待创build一个查询,但不知何故,我无法这样做。 任何人都可以请帮我在这里?
原始数据
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
分组,但所有的电子邮件应逗号分隔。 所以结果应该是:
ReportId Email 1 a@a.com, c@c.com 2 b@b.com 3 d@d.com, e@e.com
做这个的最好方式是什么?
我正在尝试群体条款,但如果有任何其他的事情,那么我也愿意实施。 我真的很感激你的时间和帮助。 谢谢。
尝试这个:
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
SQL小提琴演示
SELECT [ReportId], SUBSTRING(d.EmailList,1, LEN(d.EmailList) - 1) EmailList FROM ( SELECT DISTINCT [ReportId] FROM Table1 ) a CROSS APPLY ( SELECT [Email] + ', ' FROM Table1 AS B WHERE A.[ReportId] = B.[ReportId] FOR XML PATH('') ) D (EmailList)