[Oracle] 오라클 CASE WHEN THEN문 사용법과 중첩 CASE 사용법

SELECT 문에서 DECODE문처럼 특정 데이터 일 때 자기가 원하는 데이터로 바꿀 수 있는 유용한 함수가 있다. 바로 CASE WHEN THEN문인데 이제부터 사용법을 알아보자

 

 

CASE WHEN THEN문 사용법

CASE WHEN [조건문] THEN [조건이 맞으면 반환할 값] ELSE [조건이 맞지않으면 반환할 값] END

 

예제) CASE문 예제

WITH TMP AS (
    SELECT 'A' CHMP FROM DUAL UNION ALL
    SELECT 'B' CHMP FROM DUAL UNION ALL
    SELECT 'K' CHMP FROM DUAL UNION ALL
    SELECT 'R' CHMP FROM DUAL UNION ALL
    SELECT 'B' CHMP FROM DUAL 
 
SELECT    
    (CASE WHEN CHMP='A' THEN 'Ari' ELSE 'etc..' END ) NAME
    FROM TMP;
cs

 

컬럼 CHAP 값이 'A'이면 'Ari'값을 반환 나머지는 'etc...'값을 반환

 

 

중첩 CASE WHEN THEN문 사용법

CASE WHEN [조건문] THEN [조건이 맞으면 반환할 값]

        WHEN [조건문] THEN [조건이 맞으면 반환할 값]

        WHEN [조건문] THEN [조건이 맞으면 반환할 값]

        ELSE [조건이 맞지않으면 반환할 값]

END

예제) 중첩 CASE문 예제

WITH TMP AS (
    SELECT 'A' CHMP FROM DUAL UNION ALL
    SELECT 'B' CHMP FROM DUAL UNION ALL
    SELECT 'K' CHMP FROM DUAL UNION ALL
    SELECT 'R' CHMP FROM DUAL UNION ALL
    SELECT 'B' CHMP FROM DUAL 
 
SELECT    
    (CASE WHEN CHMP='A' THEN 'Ari' 
          WHEN CHMP='B' THEN 'Braum' 
          WHEN CHMP='K' THEN 'Katarina' 
          WHEN CHMP='R' THEN 'Rusian' 
          ELSE 'etc..' END ) NAME
    FROM TMP;
cs

 

컬럼 CHMP가 값이 'A'이면 'Ari' 값을 반환 'B'면 'Braum'값을 반환 'K'면 'Katarina'값을 반환 'R'이면 'Rusian'값을 반환 

댓글

Designed by JB FACTORY