MySQL | NULL 값 정렬 순서 변경하기

ORDER BY 절에서 정렬을 하다보면 값이 NULL 인 데이터가 맨위에 표시되는 경우가 있다.
이를 해결하는 방법에 대해 아래 보겠다.

문법

SELECT "필드"
FROM "테이블명"
ORDER BY "필드" IS NULL [ASC|DESC]

예제

store_information 테이블

region_name store_name sales
West Los Angeles 1500
West San Diego 250
West Los Angeles
East Boston 700

SQL 예제) NULL이 맨위로 정렬된다.

위와 같은 테이블이 있다고 했을 때, 아래와 같이 SQL문을 작성하고 실행하면,

SELECT store_name, sales
FROM store_information
ORDER BY sales ASC

위와 같이 NULL값이 맨위로 정렬된다.

store_name sales
Los Angeles NULL
San Diego 250
Boston 700
Los Angeles 1500

SQL 예제) NULL을 맨아래로 정렬한다.

NULL 값을 뒤로 정렬시키기 위해서는 아래와 같이 SQL문을 작성하고 실행하면,

SELECT store_name, sales
FROM store_information
ORDER BY sales IS NULL ASC, sales ASC

위와 같이 NULL값이 맨아래로 정렬된다.

store_name sales
San Diego 250
Boston 700
Los Angeles 1500
Los Angeles NULL