2011-04-04 46 views
2

我有以下表爲什麼SQL Server會忽略在字符串連接vaules

Created Comment 
2010/10/10 Text1 
2010/11/11 Text2 
2010/12/12 Text3 

我需要收集所有的意見納入單一的字符串

SELECT @Comment = COALESCE(@Comment, '') 
    + CHAR(13) + CHAR(10) + CONVERT(NVARCHAR(30), [dbo].[Comment].[Created], 101) + ': ' + ISNULL([Comment].[Text], '') 
    FROM Comment 

沒有命令其按預期工作結束返回所有你的評論。 但運行下面的代碼,添加ORDER BY子句後:

SELECT @Comment = COALESCE(@Comment, '') 
    + CHAR(13) + CHAR(10) + CONVERT(NVARCHAR(30), [Created], 101) + ': ' + ISNULL([Text], '') 
    FROM Comment 
    ORDER BY Created 

只返回最後一個註釋。 有沒有人知道爲什麼ORDER BY導致連接中的奇怪結果?

PS:它工作正常,如果FOR XML子句,而不是拼接Is there a way to create a SQL Server function to 「join」 multiple rows from a subquery into a single delimited field?

回答

相關問題