오라클
[오라클] 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로 정렬하는 흐름을 익혀두면 좋을 것 같습니다. 감사합니다. (_ _)