1. ホーム
  2. sql

[解決済み] SQL Server : GROUP BY 句でカンマ区切りの値を取得する [重複]。

2022-12-11 17:18:35

質問

重複の可能性があります。

SQL Server における SQL group_concat 関数

クエリを作成したいと思っているのですが、どういうわけか作成できません。どなたか助けていただけませんか?

元のデータ

ID    ReportId     Email
1     1            [email protected]
2     2            [email protected]
3     1            [email protected]
4     3            [email protected]
5     3            [email protected]

でグループ化したい。 ReportId でグループ化したいのですが、すべての電子メールがカンマで区切られている必要があります。だから、結果は次のようになるはずです。

ReportId     Email
1            [email protected], [email protected]
2            [email protected]
3            [email protected], [email protected]

どのような方法があるのでしょうか?

私はgroup by句を試していますが、何か他のものがあれば、私はそれを実装するためにオープンです。私は本当にあなたの時間とこのヘルプに感謝します。ありがとうございます。

どのように解決するには?

これを試してみてください。

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フィドルデモ