자격증/SQLD

ORDER BY

dev? 2024. 11. 7. 10:31
반응형

ORDER BY 절

: 결과를 정렬해서 출력

SELECT
    NAME,
    GROUP_NAME,
    BIRTH_YEAR
FROM ARTIST
ORDER BY BIRTH_YEAR; -- (기본 : ASC) 생략가능한 옵션

정렬 순서

ORDER BY에 있는 컬럼 순서대로 정렬

-- ORDER BY의 첫번째 컬럼으로 정렬(BIRTH_YEAR)
-- 같은 것들을 두번째 컬럼으로 정렬
SELECT
    NAME,
    GROUP_NAME,
    BIRTH_YEAR
FROM ARTIST
ORDER BY GROUP_NAME, BIRTH_YEAR DESC ;

 

-- 정렬 기준을 각각 다르게 줄 수 있다
SELECT
    NAME,
    GROUP_NAME,
    BIRTH_YEAR
FROM ARTIST
ORDER BY GROUP_NAME ASC, BIRTH_YEAR DESC ;

별칭(ALIAS) 사용 가능

SELECT
    NAME,
    GROUP_NAME AS 그룹이름,
    BIRTH_YEAR AS 생년
FROM ARTIST
ORDER BY 그룹이름 DESC, 생년 ASC ;

순서로 정렬 가능


대소문자 비교 정렬
- 조회하는 컬럼
- ORDER BY 부분에


[제약사항] order by에 쓸수 있는 표현식의 기준 : select에 쓸 수 있느냐
(order by 실행 순서가 select 다음이기 때문에)

 


NULL 정렬

ORACLE NULL을 기본적으로 큰값으로 처리
SQL Server  NULL을 가장 작은값으로 처리
SELECT
    NAME,
    GROUP_NAME,
    FOOT_SIZE
FROM ARTIST
ORDER BY FOOT_SIZE; -- asc 생략

 

NULL 정렬 순서 제어

NULLS FIRST : NULL 먼저
NULLS LAST : NULL 마지막
SELECT
    NAME,
    GROUP_NAME,
    FOOT_SIZE
FROM ARTIST
-- ORDER BY FOOT_SIZE ASC NULLS FIRST;
ORDER BY FOOT_SIZE DESC NULLS FIRST;
반응형