반응형
프로그래밍 언어처럼 조건문을 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;
반응형
'DB > Oracle' 카테고리의 다른 글
[Oracle] ORDER BY 및 ROWNUM 사용 시 유의점 (0) | 2021.04.20 |
---|---|
[SQL] prepareStatement 주의점 (0) | 2021.04.14 |
[Oracle] ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 (0) | 2021.03.03 |
[iBatis, myBatis] 변수 사용 시, ##과 $$ 차이점 (0) | 2021.02.15 |
[Oracle] 계정 생성 및 권한 부여 방법 (2) | 2021.02.13 |