나는 아주 잘 이해하지 못한다. 나는 이것이 내가 생각하는 바를 명확히하고 싶었다.SQL - OVER 및 ORDERBY
내가 제공 정렬 유형, 기록 상태 및 회의 날짜가있는 경우 :
나는 기본적으로 MeetingDate으로 정렬하고 싶습니다. 정렬 유형이 2, 일 때 모임 날짜순으로 상태별로 정렬하고 싶습니다.
아래 코드가이 작업을 수행합니까? 내 테스트 결과에 의하면,하지만 뭔가를 놓칠 수 있습니다. @SortType 1가하는 경우
SELECT Foo.*,
ROW_NUMBER() OVER (
ORDER BY
CASE @SortType WHEN 2 THEN Foo.FK_Status END ASC,
Foo.MeetingDate DESC
) AS RowOrder
더 구체적으로, 적절한 코드로 분해 믿는 것입니다 : 나는 단지로 분해 있다고 생각
SELECT Foo.*,
ROW_NUMBER() OVER (
ORDER BY
ASC,
Foo.MeetingDate DESC
) AS RowOrder
:
SELECT Foo.*,
ROW_NUMBER() OVER (
ORDER BY
Foo.MeetingDate DESC
) AS RowOrder
반대쪽 (@SortType이 2 일 때) :
SELECT Foo.*,
ROW_NUMBER() OVER (
ORDER BY
Foo.FK_Status ASC,
Foo.MeetingDate DESC
) AS RowOrder