DB/Oracle

[Oracle] case when ~ then ~ 사용 방법

멍목 2021. 2. 14. 11:24
반응형

프로그래밍 언어처럼 조건문을 Oracle에서도 사용 할 수 있습니다.

CASE WHEN ~ THEN ~ 구문입니다.

Oracle에서 예제와 함께 사용방법을 알아보겠습니다.

 

 

CASE    WHEN [조건1] THEN [리턴값1]
        WHEN [조건2] THEN [리턴값2]
        ...
        ELSE [리턴값]		-- ELSE 생략 가능
END

1. 샘플 테이블 생성 및 데이터 삽입

PAY_TYPE 은 현금을 냈는지, 카드를 사용했는지를 나타내는 컬럼

PAY_MONEY 는 얼마를 냈는지를 나타내는 컬럼입니다.

CREATE TABLE CASEWHEN_TABLE
(
    PAY_TYPE VARCHAR2(10),
    PAY_MONEY NUMBER(10)
);

INSERT INTO CASEWHEN_TABLE VALUES ('MONEY', 10000);
INSERT INTO CASEWHEN_TABLE VALUES ('CARD', 5000);
INSERT INTO CASEWHEN_TABLE VALUES ('CARD', 12000);
INSERT INTO CASEWHEN_TABLE VALUES ('MONEY', 7000);
INSERT INTO CASEWHEN_TABLE VALUES ('ETC', 7000);

COMMIT;

 

 

 

2. CASE WHEN ~ THEN ~ 을 사용하여 조회

PAY_TYPE을 이용해 한글로 조회를 하는 쿼리를 입력해봅니다.

SELECT  CASE WHEN PAY_TYPE = 'MONEY' THEN '현금'
             WHEN PAY_TYPE = 'CARD' THEN '카드'
             ELSE '기타'
        END AS PAYTYPE
        , PAY_MONEY
FROM    CASEWHEN_TABLE;

 

 

 

+) 한 컬럼에 데이터를 합쳐 조회

SELECT  CASE WHEN PAY_TYPE = 'MONEY' THEN CONCAT('현금 ', PAY_MONEY)
             WHEN PAY_TYPE = 'CARD' THEN CONCAT('카드 ', PAY_MONEY)
             ELSE CONCAT('기타 ', PAY_MONEY)
        END AS PAYTYPE_AND_MONEY
FROM    CASEWHEN_TABLE;

 

 

반응형