SQL 2008에서 실행되는 간단한 쿼리가 있고 사용자 지정 CLR 집계 함수 인 dbo.string_concat을 사용하여 문자열 모음을 집계합니다.SQL ORDER BY (인라인 쿼리에서 유효하지 않음)를 우아하게 작성하는 방법이지만 집계 GROUP BY에 필요합니까?
의견을 순서대로 주문해야하므로 주문 요구 사항이 필요합니다.
내가 가지고있는 질의에는 집계 함수에서 ORDER BY가 작동하도록하는 끔찍한 TOP 문이 있습니다. 그렇지 않으면 함수에 의해 연결될 때 주석이 특별한 순서가 아닙니다.
SELECT ID, dbo.string_concat(Comment)
FROM (
SELECT TOP 10000000000000 ID, Comment, CommentDate
FROM Comments
ORDER BY ID, CommentDate DESC
) x
GROUP BY ID
이 문을 다시 작성하는 더 우아한 방법이 있습니다 :
여기에 현재 쿼리입니까?
ORDER BY 쿼리가 실행될 때 발생하는 마지막 일이기 때문에, 이것은 작동합니다 생각하지 않습니다. 내가 이해하는 방식은 그룹화하기 전에 주문한 물건을 필요로한다는 것입니다. – womp
예 집계 데이터가 올바르게 정렬되도록 그룹 기준 이전에 주문해야합니다. 본질적으로 concat 함수는 시간 순서대로 주석 목록을 하나의 큰 varchar (최대)로 출력합니다. – Jafin
아, 제 잘못, 당신이 성취하려는 것을 오해했습니다. – fyjham