在 SQL Server 中有效地將多行組合成單一逗號分隔的字串
SQL Server 通常需要將多行資料聚合到一個以逗號分隔的字串中,尤其是在對結果進行分組時。 這是報告和數據呈現的常見任務。 實現此目的的一個強大方法是利用 FOR XML PATH
構造。
讓我們檢查一個包含「ID」和「值」欄位的表格:
ID | Value |
---|---|
1 | a |
1 | b |
2 | c |
以下 SQL 查詢有效地將每個唯一 Value
的 ID
條目連接成逗號分隔的字串:
<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中文網其他相關文章!