將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中文網其他相關文章!