首頁 > 資料庫 > mysql教程 > 如何使用 SQL Server 的 GROUP BY 子句聚合逗號分隔的值?

如何使用 SQL Server 的 GROUP BY 子句聚合逗號分隔的值?

Linda Hamilton
發布: 2025-01-10 17:52:43
原創
666 人瀏覽過

How to Aggregate Comma-Separated Values Using SQL Server's GROUP BY Clause?

使用 SQL Server 的 GROUP BY 連線逗號分隔值

SQL Server 的 GROUP BY 子句對於基於共用屬性聚合資料非常有用。 但是,將多個值組合成單一逗號分隔的字串需要稍微更高級的方法。這就是 STUFF 函數發揮作用的地方。

以下是如何使用 GROUP BYSTUFF 實現逗號分隔聚合:

<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>
登入後複製

讓我們來剖析這個查詢:

  • 外部 SELECT: 這將檢索 ReportId 和聚合的 Email 字串。
  • STUFF 函數: 這巧妙地連接電子郵件,在每個電子郵件之間插入逗號和空格。
  • 內部 SELECT: 此子查詢會擷取與特定 ReportId 相關的所有電子郵件。
  • FOR XML PATH(''): 這會將內部查詢的結果集轉換為 XML 字串,為連接提供方便的格式。
  • WHERE 子句: 這可確保內部查詢僅選擇與外部查詢中的 ReportId 相符的電子郵件。

將此查詢應用於範例資料將產生以下結果:

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

該技術有效地產生逗號分隔的列表,簡化了聚合資料的處理。

以上是如何使用 SQL Server 的 GROUP BY 子句聚合逗號分隔的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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