1. IF

IF( 조건문, 참일 때 값, 거짓일 때 값)
SELECT deptno
     , IF(deptno % 2 =0 , '짝수', '홀수') AS '홀짝'
FROM emp;

출력결과

DEPTNO 홀짝
7893 홀수
7520 짝수
:
:
:
:

> deptno를 2로 나누었을 때 나머지가 0이면 '짝수',

   나머지가 0이 아니면 '홀수'가 출력된다.

 

 

 

 

2. CASE WHEN / THEN

CASE WHEN / THEN은 IF와 다르게 여러 조건을 쓸 수 있다.
SELECT ename
     , job
     , sal
     , CASE 
       WHEN sal >= 3000 THEN 500
       WHEN sal >= 2000 THEN 300
       WHEN sal >= 1000 THEN 200
       ELSE 0  END AS bonus
FROM emp
WHERE job IN ('SALESMAN', 'ANALYST')

출력결과

ENAME JOB SAL BONUS
SHIN ANALYST 2500 300
KIM ANALYST 3800 500
RYU SALESMAN 1800 200

> job이 SALESMAN과 ANALYST 것만 출력

 

구문 설명
CASE WHEN sal >= 3000 THEN 500 월급이 3000 이상이면 500 출력
WHEN sal >= 2000 THEN 300 그렇지 않고 월급이 2000 이상이면 300 출력
WHEN sal >= 1000 THEN 200 그렇지 않고 월급이 1000 이상이면 200 출력
ELSE 0 위의 조건들이 아니라면 0을 출력

 

 

 

참고) 관련 내용

2023.05.23 - [SQL/중급] - Reformat Department Table (CASE WHEN /THEN, GROUP BY)

 

 

 

 

 

 

 

+ Recent posts