DB/오라클(Oracle)

[Oracle] 오라클 CASE WHEN 사용법

푸코잇 2023. 12. 1. 00:10
728x90

코딩을 하다 보면 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;

ORACLE CASE WHEN

 

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;

ORACLE 중첩 CASE WHEN

 

위와 같이 중첩 CASE WHEN을 구성할 수 있다.