[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