首頁 > 資料庫 > mysql教程 > 如何使用 SQL Server 的 GROUP BY 將唯一值連接成逗號分隔的字串?

如何使用 SQL Server 的 GROUP BY 將唯一值連接成逗號分隔的字串?

Susan Sarandon
發布: 2025-01-10 17:47:42
原創
156 人瀏覽過

How to Concatenate Unique Values into a Comma-Separated String Using SQL Server's GROUP BY?

使用 SQL Server 的 GROUP BY 將唯一值聚合到逗號分隔的清單中

挑戰:
給定一個包含重複條目的表,目標是按特定列對資料進行分組,並將另一列中的唯一值合併到單一逗號分隔的字串中。

範例資料:

下表說明了初始資料集:

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

目標結果:

期望的結果是一個包含合併電子郵件地址的表格:

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

使用 GROUP BY 和 STUFF 的解:

STUFF 函數用於有效連接字串,刪除前導字元。 解決方法如下:

<code class="language-sql">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;</code>
登入後複製

詳細說明:

核心邏輯涉及STUFF函數內的子查詢。此子查詢迭代與外部查詢的目前行共用相同 ReportId 的所有行。 對於每個匹配行,它將一個逗號和 Email 值附加到累積字串中。 然後,外部查詢使用 GROUP BY 為每個唯一的 ReportId 聚合這些串聯的電子郵件字串。 STUFF 函數刪除初始逗號和空格。

以上是如何使用 SQL Server 的 GROUP BY 將唯一值連接成逗號分隔的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板