首頁 >資料庫 >mysql教程 >如何使用 GROUP BY 檢索以逗號分隔的聚合 SQL 結果?

如何使用 GROUP BY 檢索以逗號分隔的聚合 SQL 結果?

Barbara Streisand
Barbara Streisand原創
2025-01-07 20:23:40292瀏覽

How to Retrieve Comma-Separated Aggregated SQL Results Using GROUP BY?

使用 GROUP BY 在 SQL 中產生逗號分隔的聚合資料

本指南說明如何在 SQL 中有效聚合數據,將結果輸出為按特定列分組的逗號分隔清單。 這是一個常見的 SQL 任務,有多種解決方案。

挑戰

想像一個這樣結構的表格:

ID Value
1 a
1 b
2 c

目標是合併這些數據,按 ID 列分組,並將相應的 Value 條目連接到每個群組的單一逗號分隔字串中。

解:利用 FOR XML PATH

一個強大而簡潔的方法利用 FOR XML PATH 構造:

<code class="language-sql">SELECT
    ID,
    STUFF((SELECT ', ' + Value
           FROM YourTable t2
           WHERE t1.ID = t2.ID
           FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values
FROM YourTable t1
GROUP BY ID;</code>

此查詢使用帶有 FOR XML PATH('') 的子查詢來產生連接值的 XML 表示形式。 .value('.', 'NVARCHAR(MAX)') 方法將其提取為字串。 最後,STUFF 刪除前導逗號和空格。

進一步探討

有關更進階的場景和替代方法,請探索以下相關資源:

  • SQL:將多個表中的資料合併到一個逗號分隔的清單中
  • 用於字串聚合的高效 SQL 技術

透過使用 FOR XML PATH 方法或探索其他 SQL 技術,您可以有效地聚合並以使用者友好的逗號分隔格式呈現資料。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn