ORDER BY는 조회 결과를 원하는 순서로 정렬합니다. 논리 실행 순서에서 가장 마지막에 수행된다는 사실 하나에서 이 단원의 출제 포인트(별칭 사용 가능)가 나오고, 나머지는 NULL의 위치와 정렬 방향이 차지합니다.
이 단원, 시험에서 어디에 나오나 (출제 비중)
- 제2과목 「SQL 기본 및 활용」 = 40문항 · 80점. ORDER BY는 "이 SQL의 정렬 결과는?" 유형으로 출제됩니다.
- NULL의 정렬 위치와 다중 정렬의 방향 지정이 오답을 가르는 단골 포인트입니다. (단원별 문항수는 공개되지 않습니다 — 출처: KDATA 출제기준.)
출제 포인트 — 시험이 실제로 묻는 것
- 방향 생략 = ASC(오름차순), 내림차순은
DESC - 정렬 기준 표기 3가지 — 컬럼명 · SELECT 별칭 · 컬럼 순번
- 오라클의 NULL = 최댓값 취급 → ASC 맨 뒤 / DESC 맨 앞
- 다중 정렬의 방향은 컬럼마다 각각 지정
① 기본 문법 — 왼쪽 컬럼이 1순위
SELECT 이름, 급여
FROM 사원
ORDER BY 급여 DESC, 이름; -- 급여 내림차순, 같으면 이름 오름차순
- 방향을 생략하면 ASC(오름차순) 입니다.
- 다중 기준은 왼쪽이 1순위, 동점일 때만 다음 컬럼으로 넘어갑니다.
함정:
ORDER BY A, B DESC에서 DESC는 B에만 적용됩니다(A는 ASC). A도 내림차순이면A DESC, B DESC처럼 각각 써야 합니다.
② 정렬 기준 표기 3가지 — 별칭이 되는 이유
SELECT 이름, 급여*12 AS 연봉
FROM 사원
ORDER BY 연봉 DESC; -- (2) 별칭 — ORDER BY에서만 가능
-- ORDER BY 급여*12 DESC (1) 컬럼(식)
-- ORDER BY 2 DESC (3) SELECT 목록의 2번째
논리 실행 순서가 … → SELECT → ORDER BY 이기 때문에, SELECT가 만든 별칭·순번을 ORDER BY만 쓸 수 있습니다. WHERE·GROUP BY는 SELECT보다 먼저 실행되어 별칭을 모릅니다.
③ NULL의 위치 — 오라클은 NULL을 최댓값으로
그림 1. 오라클은 NULL을 최댓값으로 취급한다 — ASC 맨 뒤, DESC 맨 앞. (자작 도식)
- 오름차순(ASC): NULL이 맨 뒤 — "NULL이 작아서 앞"이라는 착각이 대표 오답입니다.
- 내림차순(DESC): NULL이 맨 앞.
- 위치를 직접 정하려면
NULLS FIRST/NULLS LAST:
ORDER BY 수당 ASC NULLS FIRST; -- NULL을 맨 앞으로
(NULL 기본 위치는 DBMS마다 다릅니다 — 시험·본문은 오라클 기준.)
한 장 정리 (암기 카드)
- 기본 ASC, 내림차순
DESC. 다중 기준은 왼쪽이 1순위, 방향은 각각. - 기준 표기: 컬럼명 · 별칭 · 순번 — ORDER BY가 실행 마지막이라 별칭 OK.
- 오라클 NULL = 최댓값 → ASC 맨 뒤 / DESC 맨 앞,
NULLS FIRST/LAST로 지정.
참고 출처
- 시험 과목·배점: 한국데이터산업진흥원(KDATA) 데이터자격검정 (2026년 7월 확인)
- 정렬·NULL 위치 동작은 오라클 SQL 기준이며, 본문 예시·도식·설명은 자작입니다.