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)
'MYSQL' 카테고리의 다른 글
시간 더하기, 빼기 (DATE_ADD, DATE_SUB) (0) | 2023.05.28 |
---|---|
날짜 데이터에서 일부만 추출하기(YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, DATE_FORMAT, DATE) (0) | 2023.05.28 |
OUTER JOIN (LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN) (0) | 2023.05.23 |
UNION, UNION ALL (0) | 2023.05.23 |
INNER JOIN, SELF JOIN (0) | 2023.05.20 |