{{htmlmetatags>
metatag-description=(빈 값 정렬, NULL 정렬, 빈 문자열 정렬, NULL 처음, NULL 마지막, NULLS FIRST, NULLS LAST, 데이터베이스, DBMS, SQL, MySQL, MariaDB, MSSQL, Oracle, Tibero, PostgreSQL)
metatag-og:description=(빈 값 정렬, NULL 정렬, 빈 문자열 정렬, NULL 처음, NULL 마지막, NULLS FIRST, NULLS LAST, 데이터베이스, DBMS, SQL, MySQL, MariaDB, MSSQL, Oracle, Tibero, PostgreSQL)
}}
====== 빈 값 정렬 ======
최소 지원 버전은 약간의 차이가 있을 수 있습니다.
===== MySQL/MariaDB =====
SELECT * FROM {테이블} ORDER BY {컬럼} ASC; -- NULL 처음, (NULL 제외 시) 빈 문자열 처음
SELECT * FROM {테이블} ORDER BY {컬럼} DESC; -- NULL 마지막, (NULL 제외 시) 빈 문자열 마지막
/*
MySQL 3.23 이상/MariaDB 5.1 이상
*/
-- NULLS FIRST
SELECT * FROM {테이블} ORDER BY {컬럼} IS NOT NULL, {컬럼} ASC; -- NULL 처음
SELECT * FROM {테이블} ORDER BY {컬럼} IS NOT NULL, {컬럼} DESC; -- NULL 처음
-- NULLS LAST
SELECT * FROM {테이블} ORDER BY {컬럼} IS NULL, {컬럼} ASC; -- NULL 마지막
SELECT * FROM {테이블} ORDER BY {컬럼} IS NULL, {컬럼} DESC; -- NULL 마지막
===== MSSQL =====
SELECT * FROM {테이블} ORDER BY {컬럼} ASC; -- NULL 처음, (NULL 제외 시) 빈 문자열 처음
SELECT * FROM {테이블} ORDER BY {컬럼} DESC; -- NULL 마지막, (NULL 제외 시) 빈 문자열 마지막
/*
MSSQL 6.5 이상
*/
-- NULLS FIRST
SELECT * FROM {테이블} ORDER BY CASE WHEN {컬럼} IS NULL THEN 0 ELSE 1 END, {컬럼} ASC; -- NULL 처음
SELECT * FROM {테이블} ORDER BY CASE WHEN {컬럼} IS NULL THEN 0 ELSE 1 END, {컬럼} DESC; -- NULL 처음
-- NULLS LAST
SELECT * FROM {테이블} ORDER BY CASE WHEN {컬럼} IS NULL THEN 1 ELSE 0 END, {컬럼} ASC; -- NULL 마지막
SELECT * FROM {테이블} ORDER BY CASE WHEN {컬럼} IS NULL THEN 1 ELSE 0 END, {컬럼} DESC; -- NULL 마지막
===== Oracle/Tibero =====
SELECT * FROM {테이블} ORDER BY {컬럼} ASC; -- NULL 마지막
SELECT * FROM {테이블} ORDER BY {컬럼} DESC; -- NULL 처음
/*
Oracle 8i 이상/Tibero 3 이상
*/
-- NULLS FIRST
SELECT * FROM {테이블} ORDER BY {컬럼} ASC NULLS FIRST; -- NULL 처음
SELECT * FROM {테이블} ORDER BY {컬럼} DESC NULLS FIRST; -- NULL 처음
-- NULLS LAST
SELECT * FROM {테이블} ORDER BY {컬럼} ASC NULLS LAST; -- NULL 마지막
SELECT * FROM {테이블} ORDER BY {컬럼} DESC NULLS LAST; -- NULL 마지막
===== PostgreSQL =====
SELECT * FROM {테이블} ORDER BY {컬럼} ASC; -- NULL 마지막, 빈 문자열 처음
SELECT * FROM {테이블} ORDER BY {컬럼} DESC; -- NULL 처음, 빈 문자열 마지막
/*
PostgreSQL 8.3 이상
*/
-- NULLS FIRST
SELECT * FROM {테이블} ORDER BY {컬럼} ASC NULLS FIRST; -- NULL 처음
SELECT * FROM {테이블} ORDER BY {컬럼} DESC NULLS FIRST; -- NULL 처음
-- NULLS LAST
SELECT * FROM {테이블} ORDER BY {컬럼} ASC NULLS LAST; -- NULL 마지막
SELECT * FROM {테이블} ORDER BY {컬럼} DESC NULLS LAST; -- NULL 마지막
{{tag>"쿼리" "Query" "기본"}}