본문 바로가기

📚Study Note/ORACLE

[ ORACLE ] CASE 구문(조건문, 분기문 ) / CASE WHEN THEN ELSE END 구문 DECODE()

-- ■■■ CASE 구문(조건문 , 분기문)■■■

/*
CASE
WHEN
THEN
ELSE
END 구문으로 부른다. 케이스웬덴엘스엔드


*/


SELECT CASE 5+2 WHEN 7 THEN '5+2=7' ELSE '5+2는 몰라요' END "결과 확인"
FROM DUAL;
--==>> 5+2=7



SELECT CASE 5+2 WHEN 9 THEN '5+2=9' ELSE '5+2는몰라요' END "결과확인"
FROM DUAL;
--==>>5+2는몰라요

SELECT CASE 1+1 WHEN 2 THEN '1+1=2' 
                WHEN 3 THEN '1+1=3'
                WHEN 4 THEN '1+1=4'
                ELSE '몰라' 
       END "결과 확인"
FROM DUAL;

--==>> 1+1=2



-- ● DECODE()
SELECT DECODE(5-2,1,'5-2=1',2,'5-2=2',3,'5-2=3','5-2는몰라') "결과 확인"
FROM DUAL;
--==>>5-2=3

-- ● CASE WHEN THEN ELSE END 구문 활용

SELECT CASE  WHEN 5<2 THEN '5<2'
             WHEN 5>2 THEN '5>2'
             ELSE '5와 2는 비교 불가'
        END  "결과 확인"
FROM DUAL;

--==>>5>2


SELECT CASE 1+1 WHEN 2 THEN '1+1=2'
                WHEN 3 THEN '1+1=3'
                WHEN 4 THEN '1+1=4'
                ELSE '모름'
        END "결과확인"
FROM DUAL;


SELECT CASE WHEN 1+1=2 THEN '1+1=2'
            WHEN 1+1=3 THEN '1+1=3'
            WHEN 1+1=4 THEN '1+1=4'
            ELSE '모름'
        END "결과확인"
FROM DUAL;


SELECT CASE WHEN 5<2 OR 3>1 AND 2=2 THEN '우와앙'
            WHEN 5>2 OR 2=3 THEN '니햐아아'
            ELSE '끼횽'
        END "결과 확인"
FROM DUAL;
--===>>우와앙

SELECT CASE WHEN 3<1 AND 5<2 OR 3>1 AND 2=2 THEN '스펀지밥'
            WHEN 5<2 AND 2=2 THEN '톰'
            ELSE '제리'
        END "결과확인"
        
FROM DUAL;
--===>> 스펀지밥



SELECT CASE WHEN 3<1 AND (5<2 OR 3>1) AND 2=2 THEN '스펀지밥'
            WHEN 5<2 AND 2=2 THEN '톰'
            ELSE '제리'
        END "결과확인"
        
FROM DUAL;
--==>> 제리