개발자의 끄적끄적

[sql/oracle] 오라클 CASE WHEN 표현식 사용법 [펌] 본문

개발/sql

[sql/oracle] 오라클 CASE WHEN 표현식 사용법 [펌]

효벨 2020. 10. 7. 03:00
728x90
반응형

[sql/oracle] 오라클 CASE WHEN 표현식 사용법 [펌]

 

오라클에서 if 문과 비슷한 기능을 하는 DECODE 함수가 있다. 그러나 DECODE 함수는 조건이 많아지면 가독성이 떨어지고 복잡해지며, 가장 큰 문제는 오라클 SQL에서만 사용할 수 있는 비표준 함수이다.

 

오라클에서 DECODE 함수를 대체할 수 있는 기능이 CASE 표현식이며 가독성이 좋고 더 많은 기능을 제공한다. 조건이 복잡한 경우 DECODE 함수 보다 CASE 표현식을 사용할 것을 권장한다.

 

오라클 CASE 표현식

CASE 표현식에서 ELSE 부분은 생략이 가능하며, 만족하는 조건이 없으면 NULL을 리턴한다. CASE 표현식은 SELECT 절, WHERE 절, PL/SQL 등 많은 부분에서 사용이 가능하다.

 

SELECT ename
     , deptno
     , CASE WHEN deptno = '10' THEN 'New York'
            WHEN deptno = '20' THEN 'Dallas'
            ELSE 'Unknown'
       END AS loc_name
  FROM emp
 WHERE job = 'MANAGER'

 

사용_예제_쿼리.txt

0.02MB

 

사용 예제

예제 1 - 일반적인 CASE 표현식

 

예제 2 - ELSE를 생략 후 만족하는 조건이 없으면 NULL 리턴

 

예제 3 - 비교 연산자, 범위 연사자 등 사용이 가능

 

예제 4 - WHERE 절에 사용 가능

 

예제 5 - 오라클 내장 함수를 조건으로 사용 가능

 

예제 6 - 사용자 정의 함수를 조건으로 사용 가능

 

예제 7 - THEN 절에서 중첩 CASE 등 추가 연산 작업 가능

 

출처 : gent.tistory.com/311

 

반응형
Comments