首頁 >資料庫 >mysql教程 >如何將多個 SQL 行連接到單一逗號分隔列?

如何將多個 SQL 行連接到單一逗號分隔列?

Patricia Arquette
Patricia Arquette原創
2025-01-21 06:51:12986瀏覽

How to Concatenate Multiple SQL Rows into a Single Comma-Delimited Column?

將多行組合成單一逗號分隔欄位的 SQL 技術

將多行資料聚合到一列中,並用逗號分隔,是資料操作中的常見要求。 本指南示範如何使用 SQL 實現這種串聯,並專注於 Microsoft SQL Server 2005 及更高版本。

這是一個 SQL Server 解決方案:

<code class="language-sql">SELECT t.TicketID,
       STUFF(ISNULL((SELECT ', ' + x.Person
                FROM @Tickets x
               WHERE x.TicketID = t.TicketID
            GROUP BY x.Person
             FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '') AS ConcatenatedPersons
  FROM @Tickets t
GROUP BY t.TicketID</code>

此方法採用 STUFF 函數有效地從連接字串中刪除前導逗號。 巢狀查詢利用 FOR XML PATH 從與每個 Person 關聯的各個 TicketID 值建立一個逗號分隔的清單。 ISNULL 函數處理沒有人與給定票證 ID 相關的情況。 結果是一個單列 (ConcatenatedPersons),其中包含每張票的以逗號分隔的人員清單。 此方法提供了一種乾淨而有效的方法來在 SQL Server 中實現所需的串聯。 將此技術適應您的特定表和列名稱以獲得最佳結果。

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

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