[Oracle] 오라클 CASE WHEN THEN문 사용법과 중첩 CASE 사용법
- DB/Oralce
- 2020. 1. 15.
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'값을 반환
'DB > Oralce' 카테고리의 다른 글
[Oracle] 오라클에서 Null 처리하는 방법과 연산시 주의사항(NVL, NVL2, NULLIF, DECODE) (0) | 2020.01.15 |
---|---|
[Oracle] 오라클 올림(CEIL) 내림(FLOOR) 반올림(ROUND) 하는방법 (0) | 2020.01.13 |