首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 中檢索帶有逗號分隔值的聚合結果?

如何在 SQL Server 中檢索帶有逗號分隔值的聚合結果?

DDD
發布: 2025-01-07 20:07:39
原創
585 人瀏覽過

How to Retrieve Aggregated Results with Comma-Separated Values in SQL Server?

在 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中文網其他相關文章!

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