오라클 SQL - ORDER BY
SQL에서 데이터를 조회할 때 원하는 순서대로 정렬하는 방법이 필요할 때가 많습니다.
그때 사용하는 것이 바로 ORDER BY 절입니다.
ORDER BY 절은 쿼리 결과의 정렬 순서를 지정하는 역할을 합니다.
결과를 특정 컬럼을 기준으로 오름차순 또는 내림차순으로 정렬할 수 있습니다.
기본 문법
ORDER BY의 문법은 다음과 같습니다.
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name [ASC | DESC];
- column_name : 정렬 기준이 되는 컬럼입니다.
- ASC : 오름차순 정렬 (작은 값 → 큰 값). 기본값이므로 생략 가능.
- DESC : 내림차순 정렬 (큰 값 → 작은 값).
예제 테이블
예제를 통해 하나씩 확인해 보겠습니다.
다음과 같은 emp 테이블이 있다고 가정합니다.
empno | ename | job | sal | deptno |
7499 | Allen | SALESMAN | 1600 | 30 |
7698 | Blake | MANAGER | 2850 | 30 |
7844 | Turner | SALESMAN | 1500 | 30 |
7521 | Ward | SALESMAN | 1250 | 30 |
7900 | James | CLERK | 950 | 30 |
오름차순 정렬 (ASC)
급여(sal)를 기준으로 오름차순으로 정렬해 보겠습니다.
SELECT empno, ename, sal
FROM emp
ORDER BY sal;
empno | ename | sal |
7521 | Ward | 1250 |
7844 | Turner | 1500 |
7499 | Allen | 1600 |
7698 | Blake | 2850 |
7900 | James | 950 |
내림차순 정렬 (DESC)
이번에는 급여(sal)를 기준으로 내림차순으로 정렬해 보겠습니다.
SELECT empno, ename, sal
FROM emp
ORDER BY sal DESC;
empno | ename | sal |
7499 | Allen | 1600 |
7844 | Turner | 1500 |
7521 | Ward | 1250 |
7900 | James | 950 |
7698 | Blake | 2850 |
다중 컬럼 정렬
여러 컬럼을 기준으로 정렬할 수도 있습니다.
예를 들어, 부서 번호(deptno)를 기준으로 먼저 정렬하고, 같은 부서 내에서는 급여(sal)를 내림차순으로 정렬해 보겠습니다.
SELECT empno, ename, deptno, sal
FROM emp
ORDER BY deptno ASC, sal DESC;
empno | ename | deptno | sal |
7499 | Allen | 30 | 1600 |
7844 | Turner | 30 | 1500 |
7521 | Ward | 30 | 1250 |
7900 | James | 30 | 950 |
7698 | Blake | 30 | 2850 |
조건에 따른 정렬 (CASE 문 활용)
급여에 따라 등급을 나누고, 그 등급을 기준으로 정렬하는 예제를 살펴보겠습니다.
SELECT empno,
ename,
sal,
CASE
WHEN sal > 2000 THEN '1등급'
WHEN sal > 1000 THEN '2등급'
ELSE '3등급'
END AS sal_grade
FROM emp
WHERE deptno = 30
ORDER BY sal_grade, sal DESC;
실행 과정
- CASE 문으로 sal(급여)에 따라 1등급, 2등급, 3등급으로 나누어 sal_grade 컬럼을 생성합니다.
- ORDER BY로 sal_grade를 기준으로 오름차순 정렬합니다.
- 같은 sal_grade 내에서는 sal을 기준으로 내림차순 정렬합니다.
empno | ename | sal | sal_grade |
7499 | Allen | 1600 | 2등급 |
7844 | Turner | 1500 | 2등급 |
7521 | Ward | 1250 | 2등급 |
7900 | James | 950 | 3등급 |
7698 | Blake | 2850 | 1등급 |
'SQL' 카테고리의 다른 글
오라클 IN 연산자 (1) | 2024.12.17 |
---|---|
오라클 Column 추가, 삭제, 변경 (1) | 2024.12.16 |
오라클 테이블 만드는 방법( CREATE, PK, INDEX, COMMENT ) (0) | 2024.12.16 |
SQL 기본키, 외래키 (1) | 2024.12.09 |
SQL Developer 으로 Tablespace 생성 (2) | 2024.12.09 |