use*_*198 77 sql sql-server-2008
我想创建一个查询但不知何故我无法这样做.有人可以帮帮我吗?
原始数据
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
Run Code Online (Sandbox Code Playgroud)
我想分组ReportId
,但所有电子邮件都应以逗号分隔.所以结果应该是:
ReportId Email
1 a@a.com, c@c.com
2 b@b.com
3 d@d.com, e@e.com
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?
我正在尝试group by子句,但如果还有其他任何事情,那么我也愿意实现它.我非常感谢您的时间和帮助.谢谢.
Joe*_*eph 154
试试这个:
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
Run Code Online (Sandbox Code Playgroud)
Joh*_*Woo 16
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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
101035 次 |
最近记录: |