我正在寻找一个查询,但是以某种方式我无法这样做。有人可以帮我吗?原始数据ID ReportId Email1 1 a@a.com2 2 b@b.com3 1 c@c.com4 3 d@d.com5 3 e@e.com我想按分组ReportId,但所有电子邮件均应以逗号分隔。因此结果应为:ReportId Email1 a@a.com, c@c.com2 b@b.com3 d@d.com, e@e.com做这个的最好方式是什么?我正在尝试group by子句,但是如果还有其他问题,那么我也愿意实施。非常感谢您的宝贵时间,并为此提供帮助。谢谢。
2 回答
饮歌长啸
TA贡献1951条经验 获得超3个赞
尝试这个:
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
繁花不似锦
TA贡献1851条经验 获得超4个赞
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)
添加回答
举报
0/150
提交
取消