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 등의 추가 연산 작업 가능