STUDY

ORACLE | CASE WHEN 표현식과 DECODE

devvnn 2022. 8. 23. 16:53
CASE WHEN 형식

SELECT CASE WHEN 조건1 THEN 출력1
	    WHEN 조건2 THEN 출력2
            ...
            ELSE 모든조건을 만족하지 않을 시 출력할 값 --생략가능, 없을 시 NULL 리턴
       END  CASE WHEN으로 출력할 컬럼 이름 
FROM 테이블이름;

 

 

 

 

DECODE 함수와 무엇이 다른가?

  • DECODE 함수의 경우 A=B이냐 A≠B이냐를 나누는 정도의 표현에 적합 → 조건이 많아지면 가독성이 떨어짐
  • 오라클에서 DECODE 함수를 대체할 수 있는 것이 CASE 표현식, 가독성이 더 좋고 많은 기능을 제공
  • 즉 조건이 복잡한 경우 DECODE 함수보다 CASE 표현식을 사용할 것을 권장

 

 

 

 

추가로

  • 오라클 내장 함수를 조건으로 사용 가능
  • WHERE절에 사용 가능
  • 사용자 정의 함수를 조건으로 사용 가능
  • THEN절에서 중첩 CASE 등의 추가 연산 작업 가능