SQL

[SQL] ORDER BY 절

beginner-in-coding 2025. 2. 14. 09:43

01. ORDER BY 절

  • 기본적으로 데이터는 입력된 순서대로 출력됨
  • 사용: 출력되는 행의 순서를 사용자가 변경하고자할 때
  • ORDER BY 뒤에 명시된 순서대로 정렬 → 1차 정렬, 2차 정렬 가능
  • 정렬 순서
    • ASC: 오름차순 (1, 2, 3, 4, ...)
    • DESC: 내림차순 (5, 4, 3, 2, 1, ...)
  • 유일하게 SELECT 절에 정의한 컬럼 별칭 (AS)으로 사용 가능
  • SELECT절에 선언된 순서대로의 숫자 전달 가능 (컬럼명과 숫자 혼합 가능)
  • 문법
SELECT * | 컬럼명 | 표현식
FROM 테이블명 또는 뷰명
WHERE 조회할 데이터 조건
GROUP BY 그룹핑컬럼명
HAVING 그룹핑 대상 필터링 조건
ORDER BY 정렬컬럼명 [ ASC | DESC ];  --문법

02. 정렬 순서 - 오름차순

  • 한글: 가, 나, 다, ...
  • 영어: A, B, C, ...
  • 숫자: 1, 2, 3, 4, ...
  • 날짜: 과거 날짜 ~ 최근 날짜
  • 문자: 왼쪽부터 값이 작은 순서대로

03. 복합 정렬

  • 먼저 정렬한 값의 동일한 결과가 있을 경우
    • 추가적으로 정렬 가능
  • 1차 정렬한 값이 같음 → 그 값 안에서 2차 정렬 컬럼값을 정렬
SELECT first_name, salary, hire_date
FROM EMP
ORDER BY salary DESC, hire_date ASC;  --복합 정렬
  • 1차 정렬: salary를 기준으로 내림차순 정렬
  • 2차 정렬: 같은 salary를 가진 컬럼들을 그 안에서 hire_date 오름차순 정렬
SELECT first_name AS n, salary AS s, hire_date AS d
FROM EMP
ORDER BY s DESC, 3 ASC;  --별칭 사용과 컬럼 순서 사용
  • SELECT 보다 늦게 수행되는 ORDER BY
    • SELECT에서 정의한 별칭과 컬럼 순서 (1부터 시작)을 이용하여 정렬 가능함
  • salary의 별칭 s와 hire_date의 컬럼 순서인 3을 이용해서 복합 정렬함

04. NULL의 정렬

  • NULL을 포함한 값의 정렬시
    • ORACLE: ORDER BY 절에 [ NULLS LAST | NULLS FIRST ] 명시하여 NULL 정렬 순서 변경 가능
      • DEFAULT: NULL값이 마지막에 위치 (NULLS LAST)
SELECT first_name, salary, hire_date
FROM EMP
ORDER BY first_name DESC FIRST;  --내림 차순 + NULL값이 먼저 출력

'SQL' 카테고리의 다른 글

[SQL] JOIN (2)  (0) 2025.02.17
[SQL] JOIN (1)  (0) 2025.02.14
[SQL] GROUP BY 절, HAVING 절  (0) 2025.02.14
[SQL] WHERE 절  (0) 2025.02.13
[SQL] SQL 함수  (1) 2025.02.13