[SQL] CASE-WHEN 구문이란?
CASE-WHEN 구문은 실제 전사 쿼리문에서 많이 사용하며, 시험에도 종종 등장한다. 꼭 알아놓는게 좋다. 조건에 따라 값을 설정하거나 조건에 따라 무엇을 할지 입력할 수 있다. (C언어의 SWITCH문이랑 비슷하다고 보면 된다.)
예시로 아래 구문을 보자.
SELECT COMPANY_RANK,
CASE
WHEN COMPANY_RANK = '사원' THEN 4000000
WHEN COMPANY_RANK = '주임' THEN 5000000
WHEN COMPANY_RANK = '대리' THEN 7000000
ELSE 10000000 END AS 급여
FROM EMPLOYEE;
- EMPLOYEE라는 테이블에서 COMPANY_RANK와 급여 정보를 빼올 것이다.
- 그러나 '급여' 정보는 CASE WHEN에서 COMPANY_RANK의 조건에 따라 분류된다.
- 예를 들어 사원이면 급여는 400만원이다. 작네...
- WHEN 이후에는 조건이, THEN 이후에는 그 조건이 시행될 시 넣을 값이 나오고
- ELSE 뒤에는 조건이 모두 맞지 않을 경우 넣어줄 기본값을 설정하면 된다.
※ 주의! END를 꼭 넣어주어야 CASE문이 끝나는 것을 확인하여 오류가 생기지 않는다.
시행
결과
COMPANY_RANK | 급여 |
사원 | 4,000,000 |
주임 | 5,000,000 |
대리 | 7,000,000 |
과장 | 10,000,000 |
부장 | 10,000,000 |
정보를 이처럼 더 효율적이게 설정할 수 있다.