본문 바로가기
Be Smart/SQL

[SQL] 오라클 CASE 문 사용

by 반월하 2021. 10. 19.
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

댓글