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

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

Barbara Streisand
發布: 2024-12-27 22:09:10
原創
479 人瀏覽過

How to Concatenate SQL Query Results into a Single String in SQL Server?

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

在SQL Server 中,可以實作將多個查詢結果組合成單一字串的任務使用各種技術。

FOR XML PATH 和STUFF

對於SQL Server 2005 及更高版本,FOR XML PATH 和STUFF 組合提供了一個簡單的方法:

DECLARE @CodeNameString varchar(100)

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

此方法將查詢結果連接到單一XML 字串中,並且然後使用STUFF刪除前導“,”字元。

基於XML連線

另一個選項是利用XML 連線功能:

DECLARE @CodeNameString varchar(100)

SET @CodeNameString = (SELECT CodeName FROM dbo.AccountCodes FOR XML PATH(''))
登入後複製

基於遊標的方法

在XML連接的情況下不可行,基於遊標的方法可以使用:

DECLARE @CodeNameString varchar(100)
DECLARE @CodeName varchar(50)

DECLARE cursor CURSOR FOR
SELECT CodeName
FROM dbo.AccountCodes
ORDER BY Sort

OPEN CURSOR
FETCH NEXT FROM CURSOR INTO @CodeName
WHILE @@FETCH_STATUS = 0
BEGIN
   SET @CodeNameString = @CodeNameString + @CodeName + ','
   FETCH NEXT FROM CURSOR INTO @CodeName
END

CLOSE CURSOR
DEALLOCATE CURSOR
登入後複製

此方法迭代查詢結果並將其附加到 @CodeNameString 變數。

首選方法

首選方法取決於 SQL Server 版本和特定資料特徵。對於資料包含特殊字元(如“”)的情況或“&”,請考慮使用FOR XML PATH 和STUFF 技術,而對於較大的資料集或效能敏感的場景,基於遊標的方法可能更合適。

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

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