본문 바로가기

MySQL

[MYSQL], [ORACLE] CASE WHEN 여러개 사용하기

CASE WHEN 문은 조건문으로 MYSQL 과 ORACLE 이 동일하게 사용할 수 있다. 

 

기본 형식은 다음과 같다. 

CASE
WHEN 조건
THEN ‘반환 값’
ELSE ‘WHEN 조건에 해당 되지 않는 경우 반환 값’
END

 

여기서 조건을 여러개 추가하여 쓸 수 있다.

CASE
WHEN 조건
THEN ‘반환 값’
WHEN 조건
THEN ‘반환 값’

... 
ELSE ‘WHEN 조건에 해당 되지 않는 경우 반환 값’
END

 

조건을 여러개 쓸 수 있는 걸 깜박했다~

   

 

 

아래의 조건문을 CASE WHEN 구문으로 SQL 쿼리를 짜면 다음과 같다.

IF문 내용
IF age > =30 then 6000 나이가 30 이상이면 보너스 6000
ELSE IF age>=27 THEN 5000 그렇지않고 나이가 27 이상이면 보너스 5000 출력
ELSE IF age >= 22 THEN 4000 그렇지않고 나이가 22 이상이면 보너스 4000 출력
ELSE 0 위 모든 조건이 아니라면 보너스 2000 출력
	SELECT age,ename, CASE WHEN age >= 30 then 6000
	                            when age >= 27 then 5000
	                            when age >= 22 then 4000
	                            else 2000 end as "보너스" 
	from emp;

 

 

참고 : https://www.next-t.co.kr/seo/sql/mysql-case-when-then-%EA%B5%AC%EB%AC%B8/