在 SQL Server 中使用逗號分隔符號擷取分組列的聚合結果
在 SQL Server 中,可以使用 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
結構為每個群組(由 ID
欄位表示)的 Value
欄位產生一個逗號分隔的值清單。 STUFF
函數刪除聚合清單開頭的 ', '。 .value('.', 'NVARCHAR(MAX)')
將XML結果轉換為NVARCHAR(MAX)類型,避免潛在的錯誤。 範例資料與預期結果:
ID | Value |
---|---|
1 | a |
1 | b |
2 | c |
預期輸出:
ID | Values |
---|---|
1 | a,b |
2 | c |
其他範例:
有關在 SQL Server 中使用逗號分隔結果進行分組和聚合的更多參考,請考慮以下範例:
This revised answer improves the SQL query by explicitly converting the XML output to a string using .value('.', 'NVARCHAR(MAX)')
, preventing potential errors. The explanation also remains clear and concise.
以上是如何在 SQL Server 中檢索帶有逗號分隔值的聚合結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!