DB

[ORDER BY] 오름차순 내림차순 정렬

jojelly 2022. 3. 2. 04:01
반응형
  • 단계 1: 데이터구조
    SELECT
       select_list
    FROM
       table
    ORDER BY
        column_1 ASC,
        column_2 DESC;
    
  • 단계 2: 오름차순 정렬
    1. SQL> SELECT name, milliseconds, albumid FROM tracks ORDER BY albumid ASC

(albumid를 기준으로 오름차순(ASC)정렬해준다.)

 

 

  • 단계 3: 오름차순-내림차순 함께
    1. SQL> SELECT name, milliseconds, albumid FROM tracks ORDER BY albumid ASC, milliseconds DESC;

(albumid를 기준으로 오름차순(ASC)정렬을 한 후 albumid정렬 안에서 milliseconds를 내림차 순 기준으로 정렬한다.)

 

 

  • 단계 4: 필드 위치로 정렬
    1. 참고: ANSI에서는 비권장
    2. SQL> SELECT name, milliseconds, albumid FROM tracks ORDER BY 3,2;

(select에서 선택된 컬럼의 위치를 숫자로 기준을 정해 정렬 3은 albumid 2는 milliseconds이며 인덱스를 1부터 세어준다.)

 

 

  • 단계 5: NULL 다루기
    1. 주의: SQL에서는 NULL이 가장 작은 값(정렬시 위치로 확인가능)
    2. 주의: NULL은 자신과 비교 불가 (Null과 Null을 비교하면 항상 같다고 나오지 않는다.)
    3. 참고: SQLite 3.30.0에서는 NULLS FIRST(널을 가장 먼저 보이기) NULLS LAST(널을 가장 나중에 보이기) 옵션을 ORDER BY에 추가 
    4. SQL> SELECT TrackId, Name, Composer FROM tracks ORDER BY Composer; ->null이 가장 작기 때문에 먼저나옴
반응형