Por qué SQL Server ignora vaules en la concatenación de cadenas cuando se especifica la cláusula ORDER BY
Tengo la siguiente tabla
Created Comment
2010/10/10 Text1
2010/11/11 Text2
2010/12/12 Text3
Necesito reunir todos los comentarios en una sola cadena
SELECT @Comment = COALESCE(@Comment, '')
+ CHAR(13) + CHAR(10) + CONVERT(NVARCHAR(30), [dbo].[Comment].[Created], 101) + ': ' + ISNULL([Comment].[Text], '')
FROM Comment
Sin ordenarlo, funciona como se esperaba y devuelve todos los comentarios. Pero después de ejecutar el siguiente código dondeORDER BYe agrega la cláusula @:
SELECT @Comment = COALESCE(@Comment, '')
+ CHAR(13) + CHAR(10) + CONVERT(NVARCHAR(30), [Created], 101) + ': ' + ISNULL([Text], '')
FROM Comment
ORDER BY Created
Return solo el último comentario. ¿Alguien sabe por qué ORDER BY conduce al extraño resultado de la concatenación?
PS: Funciona bien siFOR XML cláusula utilizada en lugar de concatenación ¿Hay alguna forma de crear una función de SQL Server para "unir" varias filas de una subconsulta en un solo campo delimitado?.