首頁 > 資料庫 > mysql教程 > 如何在 SQL 中對資料進行分組並使用逗號分隔符號連接值?

如何在 SQL 中對資料進行分組並使用逗號分隔符號連接值?

Susan Sarandon
發布: 2025-01-07 19:56:41
原創
770 人瀏覽過

How to Group Data and Concatenate Values with Comma Separators in SQL?

SQL 分組和逗號分隔符號連接

本指南示範如何編寫 SQL 查詢來對資料進行分組並使用逗號分隔符號連接聚合值。 想像一下這樣的桌子:

<code>| ID | Value |
|-----|-------|
| 1   | a     |
| 1   | b     |
| 2   | c     |</code>
登入後複製

目標是產生一個結果集,其中相同 ID 的值組合成單一逗號分隔的字串:

<code>| ID | Value |
|-----|-------|
| 1   | a,b   |
| 2   | c     |</code>
登入後複製

使用 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>
登入後複製

STUFF 函數刪除 SELECT 語句新增的前導逗號和空格。 這種方法因其性能和可讀性而通常受到青睞。

進一步閱讀:

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

  • Stack Overflow: 討論類似串聯挑戰的相關 Stack Overflow 執行緒(搜尋「SQL group by concatenate」)。
  • SQL Server 文件:有關 FOR XML PATH 及相關函數的詳細信息,請參閱 Microsoft 官方文件。

修訂後的回應提高了清晰度,提供了更簡潔的解釋,並為進一步學習提供了有用的連結。 影像保持在原來的位置。

以上是如何在 SQL 中對資料進行分組並使用逗號分隔符號連接值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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