programing

SQL 다중 열 순서 지정

powerit 2023. 5. 3. 22:00
반응형

SQL 다중 열 순서 지정

SQL의 여러 열과 다른 방향으로 정렬하려면 어떻게 해야 합니까? column1내림차순으로 정렬됩니다.column2상행의

ORDER BY column1 DESC, column2

이것은 모든 것을 다음 기준으로 정렬합니다.column1(계속) 먼저, 그리고 그 다음에column2(기본값)은 다음과 같을 때마다column1두 개 이상의 행에 대한 필드가 동일합니다.

다른 답변에는 구체적인 예가 없으므로 다음과 같이 설명합니다.

다음 사용자 테이블이 지정됩니다.

 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 순서입니다.

여기에 이미지 설명 입력

이제 아래 명령을 실행하여 다음 두 열에서 순서 지정을 수행합니다.

여기에 이미지 설명 입력

이제 다시 두 개의 열에 새 값을 삽입합니다. 여기서 ASC의 알파벳 값은 다음과 같습니다.

여기에 이미지 설명 입력

예제 표의 열은 다음과 같습니다.이제 다시 동일한 작업을 수행합니다.

여기에 이미지 설명 입력

첫 번째 열의 값은 내림차순이지만 두 번째 열은 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 
SELECT id,  
  first_name,
  last_name,
  salary
FROM employee
ORDER BY salary DESC, last_name; 

테이블에서 레코드를 선택하지만 두 개의 열에 따라 정렬된 레코드를 보려면 ORDER BY를 사용하면 됩니다.이 절은 SQL 쿼리의 끝에 있습니다.

ORDER BY 키워드 뒤에 레코드를 먼저 정렬할 열의 이름을 추가합니다(이 예에서는 급여).그런 다음 쉼표 뒤에 두 번째 열(예: last_name)을 추가합니다.각 열에 대해 별도로 정렬 순서(상승 또는 하강)를 수정할 수 있습니다.오름차순(낮은 순서에서 높은 순서)을 사용하려면 ASC 키워드를 사용할 수 있습니다. 그러나 이 키워드는 선택 사항이지만, 이 키워드는 지정되지 않은 기본 순서입니다.내림차순을 사용하려면 적절한 열 뒤에 DESC 키워드를 입력합니다(이 예제에서는 급여 열에 내림차순을 사용했습니다).

Intellij DataGrip을 통해 컴파일됨

DEPNOAS의 EMP ORDER에서 *를 선택합니다.

해라

'select * FROM users ORDER BY id DESC, name ASC, age DESC 

또한 정렬할 각 열의 문자 수를 기준으로 정렬하거나 정렬할 수 있습니다.아래는 이름의 처음글자와 마을 이름의 마지막글자로 정렬된 샘플입니다.

SELECT *
FROM table_name
ORDER BY LEFT(FirstName, 3) ASC, LEFT(Town, 2);

언급URL : https://stackoverflow.com/questions/2051162/sql-multiple-column-ordering

반응형