본문 바로가기
  • BLG-ZYNGIROK-모토-꿈꾸며-배우고-나누며-이루다
ICT/SQL

SQL 문법 | NULL 값 먼저 또는 마지막에 표현하기

by dazwischen 2021. 10. 7. 20:04
반응형

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를 작성해준다.

* 오타 및 잘못된 내용이 있다면 댓글로 알려주세요!

반응형

댓글