본문 바로가기
오라클

[오라클] ORDER BY 정렬 문법 완벽 정리

by devlog93 2025. 12. 31.

SQL에서 ORDER BY는 조회된 데이터의 정렬 순서를 결정하는 절이다. 데이터를 어떤 기준으로, 어떤 방향으로 보여줄지 정할 때 사용한다. ORDER BY 기본 개념과 예제들을 보며 익혀보자.

ORDER BY 기본 개념

SELECT 컬럼명
  FROM 테이블명
 ORDER BY 컬럼명 ASC;
  • 기본 정렬 방식은 오름차순(ASC)이다. 되도록 ASC를 써주도록 하자.
  • ORDER BY는 SELECT 문의 가장 마지막에 작성한다.

예제용 테이블 데이터

EMPNO ENAME DEPTNO SAL
1001 KIM 10 3000
1002 LEE 20 4000
1003 PARK 10 2000
1004 CHOI 20 4000
1005 JUNG 30 1500

1. 오름차순 정렬 (ASC)

SELECT EMPNO
     , ENAME
     , SAL
  FROM EMP
 ORDER BY SAL ASC;

실행 결과 ㅡ> ASC는 생략 가능하지만 되도록 써주자. 숫자는 작은 값에서 큰 값

EMPNO ENAME SAL
1005 JUNG 1500
1003 PARK 2000
1001 KIM 3000
1002 LEE 4000
1004 CHOI 4000

2. 내림차순 정렬 (DESC)

SELECT EMPNO
     , ENAME
     , SAL
  FROM EMP
 ORDER BY SAL DESC;

실행 결과 ㅡ> DESC는 큰 값에서 작은 값

EMPNO ENAME SAL
1002 LEE 4000
1004 CHOI 4000
1001 KIM 3000
1003 PARK 2000
1005 JUNG 1500

3. 문자 정렬 (이름 정렬)

SELECT EMPNO
     , ENAME
  FROM EMP
 ORDER BY ENAME;

실행 결과 ㅡ> 문자는 사전 순(가나다/ ABC), 대소문자, 한글 정렬은 환경에 따라 다를 수 있다.

EMPNO ENAME
1004 CHOI
1005 JUNG
1001 KIM
1002 LEE
1003 PARK

4. 여러 컬럼으로 정렬하기

◆ 정렬 기준

  • DEPTNO 오름차순
  • 같은 부서 안에서는 SAL 내림차순
SELECT EMPNO
     , ENAME
     , DEPTNO
     , SAL
  FROM EMP
 ORDER BY DEPTNO ASC, SAL DESC;

실행 결과

  • 첫 번째 정렬이 우선
  • 값이 같을 때 다음 컬럼으로 정렬됨
EMPNO ENAME DEPTNO SAL
1001 KIM 10 3000
1003 PARK 10 2000
1002 LEE 20 4000
1004 CHOI 20 4000
1005 JUNG 30 1500

5. WHERE + ORDER BY 함께 사용

SELECT EMPNO
     , ENAME
     , SAL
  FROM EMP
 WHERE SAL >= 2000
ORDER BY SAL DESC;
  • 실행 순서 ( FROM -> WHERE -> SELECT -> ORDER BY )
  • WHERE로 먼저 필터링
  • 그 결과를 ORDER BY로 정렬

마무리

ORDER BY는 SQL에서 조회 결과를 보기 좋게 정렬하기 위한 가장 기본이자 중요한 문법이다. 단순히 데이터를 나열하는 것이 아니라 어떤 기준으로 데이터를 보여줄 것인가?를 결정하는 역할을 한다. 실무에서는 급여순 정렬, 날짜 최신순 정렬, 그룹 내 우선순위 정렬처럼 비즈니스 로직과 직결된 경우가 많기 때문에 ASC/ DESC 기준을 정확히 이해하고 사용하는 것이 중요한 것 같다. WHERE로 먼저 필요한 데이터를 걸러낸 후 ORDER BY로 정렬하는 흐름을 익혀두면 좋을 것 같습니다. 감사합니다. (_ _)