반응형
SQL에서 데이터를 정렬할 때 NULL 값을 먼저 표현할지 마지막에 표현할지 선택하고 하고 싶을 때가 있다. 기본적으로 정렬할 때 NULL 값의 위치는 어디이고 마음대로 선택하고 싶을 땐 어떻게 해야 하는지 알아보도록 하자.
NULL 위치
SQL에서 데이터를 정렬할 대 NULL 값이 어떻게 다뤄지고 어떻게 다룰 수 있을까?
01 NULL 기본적인 위치
쿼리에서 ORDER BY를 이용해서 정렬을 할 때 기본적으론 오름차순이고 명시할 땐 ASC를 입력한다. 내림차순으로 정렬하고 싶을 땐 마지막에 DESC를 입력해 준다. 이때 NULL값은 어떻게 정렬이 될까?
- ASC(오름차순)일 경우 NULL 값은 맨 마지막에 에 위치한다.
- DESC(내림차순)일 경우 NULL 값은 맨 위에 위치한다.
02 NULL 값의 위치를 정하고 싶을 때
오름차순으로 보지만 NULL값을 먼저 보고 싶을 수도 있고 내림차순이지만 NULL값을 맨 마지막에 위치시키고 싶을 때가 있다. 그럴 땐 NULLS FISRT와 NULLS LAST를 이용한다. 기본 쿼리는 다음과 같다.
--- NULL 값들을 먼저 표현한다
SELECT COL1, COL2
FROM TABLE NAME
ORDER BY COL1 ASC NULLS FIRST
;
--- NULL 값을 맨 마지막에 표현한다
SELECT COL1, COL2
FROM TABLE_NAME
ORDER BY COL1 DESC NULLS LAST
;
EXAMPLE
SQLD 시험 응시자의 이름과 성적을 내림차순으로 조회하는데 미응시 및 부정행위로 답안 제출 거부되어 점수 값이 없는 (NULL) 응시생들의 자료는 맨 마지막에 표현해주세요.
SELECT NAME, NOTE
FROM SQLD_TEST
ORDER BY NOTE DESC NULLS LAST
;
SUMMARY
- 기본적으로 ORDER BY절에서 NULL 값은 오름차순 (ASC) 일 경우 맨 앞에 내림차순 (DESC) 일 경우 맨 먼저 표시된다.
- 오름차순(ASC)에서 NULL값을 가장 먼저 표현하고 싶을 땐 ORDER BY절 마지막에 NULLS FIRST를 작성해준다.
- 내림차순(DESC)에서 NULL값을 가장 나중에 표현하고 싶을 땐 ORDER BY절 마지막에 NULLS LAST를 작성해준다.
* 오타 및 잘못된 내용이 있다면 댓글로 알려주세요!
반응형
'ICT > SQL' 카테고리의 다른 글
DB | DB 테이블과 사용자 접속 추가 제거 (0) | 2022.01.13 |
---|---|
SQL 문법 | 윈도우 함수 | LAG, LEAD (0) | 2021.10.06 |
SQL 문법 | 추출 함수 | FIRST_VALUE LAST_VALUE (0) | 2021.10.05 |
윈도우 포스트그레 SQL 설치 (0) | 2021.10.04 |
SQLD SQLP 자격증 시험 아무나 볼 수 있나? (0) | 2021.10.03 |
댓글