將多行組合成單一逗號分隔欄位的 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中文網其他相關文章!