programing

SQL 다중 열 순서

nasanasas 2020. 10. 3. 10:56
반응형

SQL 다중 열 순서


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

다중 열 순서는 두 열의 해당 값에 따라 달라집니다. 다음은 알파벳과 숫자로 이름이 지정된 두 개의 열이 있고이 두 열의 값이 ascdesc 순서 인 테이블 예 입니다.

여기에 이미지 설명 입력

이제 아래 명령을 실행하여이 두 열에서 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 

참고 URL : https://stackoverflow.com/questions/2051162/sql-multiple-column-ordering

반응형