MySQL에서 ORDER BY로 정렬시 null값 처리
ORDER BY 구문을 통해 데이터를 정렬하는데, 문자열은 사전순으로, 숫자의 경우 그 수의 크기 순으로 정렬합니다. 그러나 NULL값의 경우는 값이 없다는 의미를 가지고 있기에 대소를 가릴 수 없는데, 그래서인지 NULL값 정렬에 대한 정해진 표준이 없기 때문에 Oracle이나 MySQL, MS-SQL, PostgreSQL 등 각 DBMS의 공급사마다 다른 방식으로 NULL값 정렬에 대한 처리를 하고 있습니다.

결론적으로 MySQL의 경우 NULL값은 가장 작은 값으로 취급하고 있습니다.

simple_tbl 테이블은 단순히 number라는 INTEGER형 컬럼 하나만을 가지고 있는 테이블입니다.
SELECT * FROM simple_tbl;
cs

네 개의 정수값과 NULL값을 하나 가지고 있습니다.



이 상태에서 number컬럼을 오름차순으로 정렬한 경우 NULL값이 있는 행이 가장 첫 행인것을 볼 수 있습니다.
SELECT * FROM simple_tbl ORDER BY number ASC;
cs




반대로 내림차순인 경우에는 NULL값이 있는 행이 가장 마지막 행으로 정렬됩니다.
SELECT * FROM simple_tbl ORDER BY number DESC;
cs



블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!