개발 & 데이터베이스/DB

오라클 조회 결과 정렬하는 방법 (ORDER BY 절)

K.두부 2022. 8. 28. 09:00
반응형

오라클에서 검색 결과를 정렬하려면 ORDER BY 절을 사용합니다. 오름차순(Ascending sort) 와 내림차순(Descending sort) 로 정렬할 수 있습니다. 

 

SELECT 컬럼명
   FROM 테이블명
 WHERE 조건
ORDER BY 컬럼명 [ASC/DESC]

 

위의 임시 테이블(emp)로 ORDER BY 절의 사용법에 대해서 알아보겠습니다.

 

오름차순 (ASC)
SELECT *
  FROM EMP
 WHERE 1=1
 ORDER BY SAL ASC;

SAL 컬럼이 작은 값부터 오름차순으로 정렬된 모습을 볼 수 있다. ORDER BY 절에서는 default 값이 ASC이기 때문에 생략해도 무관하다.

 

내림차순 (DESC)
SELECT *
  FROM EMP
 WHERE 1=1
 ORDER BY SAL DESC;

정렬하고자 하는 컬럼명 뒤에 DESC를 붙이면 값이 높은 순부터 내림차순으로 출력할 수 있다.

 

컬럼 순번으로 정렬
SELECT EMPNO
     , ENAME
     , SAL
     , DEPTNO
  FROM EMP
 WHERE 1=1
ORDER BY 3 ASC;

SELECT 절에서 작성한 컬럼 순번으로 ORDER BY 절에 적용시킬 수 있다. 하지만 가독성이 떨어지는 단점이 있어서 사용하지 않는다.

 

여러 개의 컬럼 정렬
SELECT *
  FROM EMP
 WHERE 1=1
ORDER BY DEPTNO ASC, SAL DESC;

여러 개의 컬럼을 정렬하고 싶을 땐 컬렴명, ASC/DESC 순으로 작성하면 된다. 첫 번째 컬럼부터 정렬 후에 두 번째 컬럼을 정렬한다. 위의 결과를 보면 DEPTNO 컬럼부터 오름차순으로 정렬 후에 같은 값끼리 SAL 컬럼에서 내림차순으로 정렬한다.

 

별칭으로 정렬
SELECT EMPNO
     , ENAME
     , SAL
     , DEPTNO
     , CASE WHEN SAL >= 7000 THEN '1순위'
            WHEN SAL >= 3000 THEN '2순위'
            ELSE '3순위'
       END AS GRADE
  FROM EMP
 WHERE 1=1
ORDER BY GRADE ASC;

CASE 문을 이용해서 GRADE 컬럼을 임시로 만들었다. 임시 컬럼(별칭)도 ORDER BY 절에 적용해서 정렬할 수 있다.

반응형