본문 바로가기
SQL/Oracle

오라클 CASE WHEN 사용법 & 예제

by wakestand 2019. 12. 17.
반응형

CASE WHEN 은

 

SEELCT CASE WHEN 컬럼명 = 조건 THEN 조건이_맞을_시_값

          WHEN 컬럼명 = 조건2 THEN 조건이_맞을_시_값

          ELSE '조건이 맞지 않을 시 값' END AS 명명할_컬럼명

FROM 테이블

 

이런 식으로 사용하는데

 

예제를 통해 보자면

CASEWHENTB 테이블을 만들고 A,B,C,D 값을 넣은 뒤

CASE WHEN을 사용해서 A,B,C 일 경우 A,B,C입니다

A,B,C가 아닐 경우 A,B,C가 아닙니다가 나오게 해 놓았는데

 

CASE WHEN 부분에서 맞으면 THEN 부분의 값으로 출력되지만

맞는 경우가 없을 경우에는 ELSE의 값으로 출력된다

 

즉 CASE WHEN을 정리해 보자면

조건에 맞을 경우에는 THEN으로 그렇지 않을 경우에는 ELSE로 나오게 된다

여기서 ELSE를 작성하지 않을 경우에는 조건에 맞지 않는 값들이 모두 NULL로 나오게 된다

 

사용한 코드는 아래를 참고해주면 된다 

 

CREATE TABLE CASEWHENTB( -- CASEWHENTB 테이블 생성
	TEXT VARCHAR2(10)
)

INSERT INTO CASEWHENTB(TEXT) VALUES('A');
INSERT INTO CASEWHENTB(TEXT) VALUES('B');
INSERT INTO CASEWHENTB(TEXT) VALUES('C');
INSERT INTO CASEWHENTB(TEXT) VALUES('D'); -- CASEWHENTB 테이블에 A,B,C,D 삽입

SELECT CASE WHEN TEXT = 'A' THEN 'A입니다'
	    WHEN TEXT = 'B' THEN 'B입니다'
	    WHEN TEXT = 'C' THEN 'C입니다'
            ELSE 'A,B,C가 아닙니다' END AS CASEWHENRESULT -- 조건에 맞는 값을 CASEWHENRESULT로 명명
	    FROM CASEWHENTB
		    
반응형

댓글