[ORACLE] 오라클 CASE WHEN THEN 조건문 사용법

오라클 case문 사용법

 

오라클 case when 조건문에 대해서 알아볼게요.

 

oracle case when 조건문은 우리가 많이 사용하는 if문과 같은 기능입니다.

 

case when은 두가지 방법으로 사용됩니다.

 

마지막은 꼭 END를 넣어주셔야 합니다. 종종 실수하는 경우가 많습니다.

 

1. CASE 문 사용하기

WITH TEMP_TB AS (
    select '사과' as product , '5' as qty from dual
    union all
    select '청소기' as product , '10' as qty from dual
    union all
    select '연필' as product , '15' as qty from dual
)
select 
    product
    , qty
    , CASE WHEN qty < 10 then '적음'
           WHEN qty > 10 then '많음'
           ELSE '보통'
    END as 재고
FROM TEMP_TB;

qty 값이 10보다 작으면 재고의 값은 적음

qty 값이 10보다 크면 재고의 값은 많음

qty 값이 그외의 값이면 보통입니다.

 

아래의 방법은 쿼리를 좀더 간소화 하여 만들어 볼게요.

 

2. 하나의 대상(컬럼)으로 CASE 문 사용

CASE 대상(컬럼) WHEN [조건1] THEN [조건1 결과]
                     WHEN [조건2] THEN [조건2 결과]
                     ELSE 그외 결과 
  END

WITH TEMP_TB AS (
    select '사과' as product , '5' as qty from dual
    union all
    select '청소기' as product , '10' as qty from dual
    union all
    select '연필' as product , '15' as qty from dual
)
select 
    product
    , qty
    , CASE product WHEN '사과' then '과일'
                   WHEN '청소기' then '전자제품'
                   ELSE '학용품'
    END as 분류
FROM TEMP_TB;

WHEN 앞에 컬럼명을 입력하여 WHEN 에 컬럼명을 따로 기입하지 않아도 됩니다.

쿼리가 좀더 깔끔하게 보입니다.

아래 예제로 비교해보시죠.

CASE product WHEN '사과' then '과일'
		WHEN '청소기' then '전자제품'
		ELSE '학용품'
            
CASE WHEN product = '사과' then '과일'
	WHEN product = '청소기' then '전자제품'
    ELSE '학용품'            
 
 같은결과가 나옵니다.
                   
                   

 

댓글

Designed by JB FACTORY