Por que o SQL Server ignora vaules na concatenação de strings quando a cláusula ORDER BY especifica
Tenho a seguinte tabela
Created Comment
2010/10/10 Text1
2010/11/11 Text2
2010/12/12 Text3
Eu preciso reunir todos os comentários na string única
SELECT @Comment = COALESCE(@Comment, '')
+ CHAR(13) + CHAR(10) + CONVERT(NVARCHAR(30), [dbo].[Comment].[Created], 101) + ': ' + ISNULL([Comment].[Text], '')
FROM Comment
Sem encomendar, ele funciona como o esperado e retorne todos os comentários. Mas depois de executar o código a seguir, ondeORDENAR PO cláusula @ é adicionada:
SELECT @Comment = COALESCE(@Comment, '')
+ CHAR(13) + CHAR(10) + CONVERT(NVARCHAR(30), [Created], 101) + ': ' + ISNULL([Text], '')
FROM Comment
ORDER BY Created
Retorne apenas o último comentário. Alguém sabe por que ORDER BY leva a um resultado estranho na concatenação?
PS: Funciona bem seFOR XML cláusula usada em vez de concatenaçãoxiste uma maneira de criar uma função do SQL Server para "ingressar" em várias linhas de uma subconsulta em um único campo delimitad.