首頁 >資料庫 >mysql教程 >如何在 SQL Server 中將多行連接成單一逗號分隔的字串?

如何在 SQL Server 中將多行連接成單一逗號分隔的字串?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-07 21:12:41270瀏覽

How to Concatenate Multiple Rows into a Single Comma-Separated String in SQL Server?

在 SQL Server 中有效地將多行組合成單一逗號分隔的字串

SQL Server 通常需要將多行資料聚合到一個以逗號分隔的字串中,尤其是在對結果進行分組時。 這是報告和數據呈現的常見任務。 實現此目的的一個強大方法是利用 FOR XML PATH 構造。

讓我們檢查一個包含「ID」和「值」欄位的表格:

ID Value
1 a
1 b
2 c

以下 SQL 查詢有效地將每個唯一 ValueID 條目連接成逗號分隔的字串:

<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('') 的子查詢來連接值。 .value('.', 'NVARCHAR(MAX)') 方法將 XML 結果轉換為字串。 STUFF 刪除前導逗號和空格。

輸出將是:

ID Values
1 a, b
2 c

這種方法提供了一種乾淨而有效的方法來在 SQL Server 中產生逗號分隔的聚合值,從而增強資料的可讀性和可用性。

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

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