코딩을 하다 보면 if문과 같은 조건식을 많이 사용하게 된다.
오라클에서는 CASE 표현식을 제공하고 있다.
CASE WHEN 기본형식
CASE WHEN 조건1 THEN 출력값1
[WHEN 조건2 THEN 출력값2]
[...]
[ELSE 출력값N]
END
WHEN 조건은 하나 이상을 입력할 수 있다.
ELSE 부분은 생략할 수 있으며 모든 조건을 만족하지 않으면 NULL을 출력한다.
사용 예제
SELECT
CASE
WHEN TEAM_ID = 'K02' THEN '울산 현대'
WHEN TEAM_ID = 'K11' THEN '광주FC'
ELSE '미정'
END 팀이름
FROM PLAYER;
PLAYER 테이블에서 TEAM_ID에 따라 팀이름을 부여해 봤다.
TEAM_ID가 K02는 울산 현대, K11은 광주 FC, 나머지는 미정으로 설정했다.
SELECT
CASE TEAM_ID
WHEN 'K02' THEN '울산 현대'
WHEN 'K11' THEN '광주FC'
ELSE '미정'
END 팀이름
FROM PLAYER;
WHEN 조건이 많아질수록 TEAM_ID가 중복적으로 나오게 된다.
이럴 경우 CASE에 TEAM_ID를 적고 WHEN에 조건값만 넣어주면 된다.
SELECT CASE WHEN DEPTNO = 20 THEN
CASE WHEN JOB = 'MANAGER' THEN '매니저'
ELSE '점원'
END
ELSE '직원'
END 직책
FROM EMP;
위와 같이 중첩 CASE WHEN을 구성할 수 있다.
'DB > 오라클(Oracle)' 카테고리의 다른 글
[Oracle] 오라클 서브쿼리(SubQuery) 사용법 (4) | 2023.12.03 |
---|---|
[Oracle] 오라클 GROUP BY, HAVING 사용법 (2) | 2023.12.02 |
[Oracle] 오라클 정렬 ORDER BY 사용법 (0) | 2023.11.30 |
[Oracle] 오라클 집계함수(AVG, MAX, MIN, SUM, COUNT) (0) | 2023.11.29 |
[Oracle] 오라클 숫자 함수(ABS, SIGN, MOD, CEIL) (0) | 2023.11.28 |