상세 컨텐츠

본문 제목

오라클 ORDER BY 정렬순서 바꾸기(CASE WHEN, DECODE 활용)

프로그래밍/Oracle

by ........? 2014. 3. 27. 11:06

본문

ORDER BY 구문 활용시 단순 칼럼명으로 정렬하는것이 아니라 특정칼럼의 특정값을 먼저 오게 하는것처럼 정렬순서를 변경하고 싶은경우

ORDER BY 구문과 DECODE 혹은 CASE WHEN 구문을 함께 활용하면 된다.

 

-DECODE 사용 예제

SELECT PART,
       GRADE
  FROM (SELECT '국어' PART, 'A' GRADE FROM DUAL
         UNION ALL
        SELECT '수학' PART, 'C' GRADE FROM DUAL
         UNION ALL
        SELECT '영어' PART, 'B' GRADE FROM DUAL)
ORDER BY DECODE(PART,'영어',0);

 

-CASE WHEN 활용 예제

SELECT PART,
       GRADE
  FROM (SELECT '국어' PART, 'A' GRADE FROM DUAL
         UNION ALL
        SELECT '수학' PART, 'C' GRADE FROM DUAL
         UNION ALL
        SELECT '영어' PART, 'B' GRADE FROM DUAL)
ORDER BY CASE WHEN PART = '수학' THEN 0 END;

 

DCODE 문 혹은 CASE WHEN 구문 뒤에는 기존 ORDER BY 구문처럼 칼럼명을 또 활용할 수 있으므로, 다양한 정렬구조를 만들수 있다.

관련글 더보기

댓글 영역