SQL의 여러 열을 기준으로 다른 방향으로 정렬하려고합니다. column1
내림차순과 column2
오름차순으로 정렬됩니다.
어떻게해야합니까?
답변
ORDER BY column1 DESC, column2
이렇게 하면 두 개 이상의 행에 대한 필드가 같을 때마다 column1
(내림차순) 모든 항목을 정렬 한 다음 column2
(기본값은 오름차순) 정렬 column1
합니다.
답변
다른 답변에는 구체적인 예가 없으므로 여기에 있습니다.
다음과 같은 People 테이블이 제공됩니다.
FirstName | LastName | YearOfBirth
----------------------------------------
Thomas | Alva Edison | 1847
Benjamin | Franklin | 1706
Thomas | More | 1478
Thomas | Jefferson | 1826
아래 쿼리를 실행하면 :
SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC
결과 집합은 다음과 같습니다.
FirstName | LastName | YearOfBirth
----------------------------------------
Thomas | More | 1478
Thomas | Jefferson | 1826
Thomas | Alva Edison | 1847
Benjamin | Franklin | 1706
답변
SELECT *
FROM mytable
ORDER BY
column1 DESC, column2 ASC
답변
여러 열 순서는 두 열의 해당 값에 따라 다릅니다. 다음은 알파벳과 숫자로 이름이 지정된 두 개의 열이 있고이 두 열의 값이 asc 및 desc 순서 인 테이블 예 입니다.
이제 아래 명령을 실행 하여이 두 열에서 Order By 를 수행합니다.
이제 다시이 두 열에 새 값을 삽입합니다. 여기서 ASC 순서의 알파벳 값은 다음과 같습니다.
예제 테이블의 열은 다음과 같습니다. 이제 동일한 작업을 다시 수행하십시오.
첫 번째 열의 값은 desc 순서이지만 두 번째 열은 ASC 순서가 아닙니다.
답변
여러 조건에서 여러 주문을 사용할 수 있습니다.
ORDER BY
(CASE
WHEN @AlphabetBy = 2 THEN [Drug Name]
END) ASC,
CASE
WHEN @TopBy = 1 THEN [Rx Count]
WHEN @TopBy = 2 THEN [Cost]
WHEN @TopBy = 3 THEN [Revenue]
END DESC