首頁 >資料庫 >mysql教程 >如何將 SQL 查詢結果連接成單一字串?

如何將 SQL 查詢結果連接成單一字串?

Susan Sarandon
Susan Sarandon原創
2025-01-04 10:19:35459瀏覽

How to Concatenate SQL Query Results into a Single String?

將SQL 查詢結果連接成單一字串

問題:

在SQL 中,函數包含一個檢索的查詢AccountCodes 表格中按排序排序的CodeName 值清單。目標是將這些值連接成單一字串並將結果儲存在 CodeNameString 變數中。

解決方案:

使用FOR XML PATH 和STUFF ( SQL Server 2005 或更高版本):

DECLARE @CodeNameString varchar(100)

SELECT 
   @CodeNameString = STUFF( (SELECT ',' + CodeName 
                             FROM dbo.AccountCodes 
                             ORDER BY Sort
                             FOR XML PATH('')), 
                            1, 1, '')

這個方法使用FOR XML PATH 子句將CodeName 值連接到XML 字串中。然後使用 STUFF 函數將產生的 XML 轉換回字串,並刪除第一個字元(逗號)。

注意:

如果 CodeName 值包含,則此方法可能不起作用特定字符,例如 或 &。在這種情況下,建議採用替代解決方案,例如下面提出的解決方案:

替代解決方案(使用DISTINCT 和FOR XML RAW):

DECLARE @CodeNameString varchar(100)

SELECT 
   @CodeNameString = DISTINCT(CodeName) 
WHERE 
   EXISTS (SELECT 1 FROM dbo.AccountCodes WHERE CodeName = @CodeNameString)
FOR XML RAW, ',')

此方法使用FOR XML RAW 子句建立包含連接值(不包括重複值)的XML 字串。然後將該字串指派給 CodeNameString 變數。

以上是如何將 SQL 查詢結果連接成單一字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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