Be Smart/SQL

[SQL] 오라클 CASE 문 사용

반월하 2021. 10. 19. 17:21
728x90

오라클 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 값이 그외의 값 이면 보통 입니다.

하나의 대상(칼럼)으로 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 '학용품'            
 
 같은결과가 나옵니다.

 

728x90