У меня есть простой запрос, который выполняется в SQL 2008 и использует собственную функцию агрегирования CLR, dbo.string_concat, которая агрегирует коллекцию строк.
Мне требуются упорядоченные комментарии, следовательно, требование ORDER BY.
В моем запросе содержится ужасный оператор TOP, позволяющий ORDER BY работать для агрегатной функции, иначе комментарии будут в произвольном порядке, когда они будут объединены функцией.
Вот текущий запрос:
SELECT ID, dbo.string_concat(Comment)
FROM (
SELECT TOP 10000000000000 ID, Comment, CommentDate
FROM Comments
ORDER BY ID, CommentDate DESC
) x
GROUP BY ID
Есть ли более элегантный способ переписать это утверждение?