为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐4208626 2019-10-28 18:46:27
我正在寻找一个查询,但是以某种方式我无法这样做。有人可以帮我吗?原始数据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


查看完整回答
反对 回复 2019-10-28
?
繁花不似锦

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) 


查看完整回答
反对 回复 2019-10-28
  • 2 回答
  • 0 关注
  • 882 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信