더북(TheBook)

결과 집합 정렬

SQL 표준에서는 다음 내용을 제외하고 널과 널이 아닌 값의 정렬 방법은 명시하지 않는다.

임의의 널 값 두 개는 정렬 순서가 같다.

널은 널이 아닌 값의 상위나 하위로 정렬해야 한다.

크게 놀랄 만한 내용은 없다. DBMS별 차이점을 알아보자.

DB2 : 널은 널이 아닌 값보다 정렬 순서가 높다.

액세스 : 널은 널이 아닌 값보다 정렬 순서가 낮다.

SQL Server : 널은 널이 아닌 값보다 정렬 순서가 낮다.

MySQL : 널은 널이 아닌 값보다 정렬 순서가 낮다. 트롤 아빈의 말에 따르면 MySQL 관련 문서에 나온 내용은 아니지만, 컬럼 이름 앞에 -(마이너스) 문자를 추가하면 ASCDESC로 바뀌고 DESCASC로 바뀐다고 한다.

오라클 : 기본적으로 널은 널이 아닌 값보다 정렬 순서가 높지만, ORDER BY 절에서 NULLS FIRSTNULLS LAST를 추가하면 정렬 동작이 달라진다.

PostgreSQL : 기본적으로 널은 널이 아닌 값보다 정렬 순서가 높지만, 8.3 버전부터는 ORDER BY 절에서 NULLS FIRST나 NULLS LAST를 추가하면 정렬 동작이 달라진다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.