결과 집합 정렬
SQL 표준에서는 다음 내용을 제외하고 널과 널이 아닌 값의 정렬 방법은 명시하지 않는다.
• 임의의 널 값 두 개는 정렬 순서가 같다.
• 널은 널이 아닌 값의 상위나 하위로 정렬해야 한다.
크게 놀랄 만한 내용은 없다. DBMS별 차이점을 알아보자.
• DB2 : 널은 널이 아닌 값보다 정렬 순서가 높다.
• 액세스 : 널은 널이 아닌 값보다 정렬 순서가 낮다.
• SQL Server : 널은 널이 아닌 값보다 정렬 순서가 낮다.
• MySQL : 널은 널이 아닌 값보다 정렬 순서가 낮다. 트롤 아빈의 말에 따르면 MySQL 관련 문서에 나온 내용은 아니지만, 컬럼 이름 앞에 -(마이너스) 문자를 추가하면 ASC는 DESC로 바뀌고 DESC는 ASC로 바뀐다고 한다.
• 오라클 : 기본적으로 널은 널이 아닌 값보다 정렬 순서가 높지만, ORDER BY 절에서 NULLS FIRST나 NULLS LAST를 추가하면 정렬 동작이 달라진다.
• PostgreSQL : 기본적으로 널은 널이 아닌 값보다 정렬 순서가 높지만, 8.3 버전부터는 ORDER BY 절에서 NULLS FIRST나 NULLS LAST를 추가하면 정렬 동작이 달라진다.