2010-10-04 64 views

回答

2

使用FOR XML PATH:

SELECT [Text]+' ' AS 'text()' FROM _table FOR XML PATH('') 

另一種選擇 - 使用字符串連接:

DECLARE @s nvarchar(max) 
SELECT @s = ISNULL(@s, '') + t + ' ' FROM _table OPTION (MAXDOP 1) 
SELECT @s 

請注意,後者不能保證爲了工作,afaik,多行結果集的「@s = @s + ...」的行爲正式未定義。
MAXDOP 1提示在此處用於防止優化器創建parralel執行計劃,因爲這肯定會產生錯誤的結果。

+0

很好,謝謝! – Fu86 2010-10-04 14:56:58

+0

對於'FOR XML PATH'解決方法+1,好主意! – Shimmy 2010-10-25 22:47:58

2

我相信你正在尋找的東西是這樣的:

DECLARE @string nvarchar(max) 
SET @string = N'' 

SELECT @string = @string + [Text] + N' ' FROM [YourTable] 

SELECT @string 

這將串接所有數值爲[文字]列到一個單一變量。然後,您可以選擇該變量來檢索單個行中的所有值。

0

喜歡的東西:

DECLARE @result varchar(max) 

SELECT @result = COALESCE(@result + ' ','') +[Text] FROM [Table] 
SELECT @result