파게로그
[SQL] SQL로 IF문 구현 본문
DECODE
SELECT ename, deptno, DECODE(deptno, 10, 300) 보너스
FROM emp;
SELECT ename, deptno, DECODE(deptno, 10, 300, 20, 400, 30, 500, 0) 보너스
FROM emp;
IF (deptno == 10)
THEN RETURN 300
ELSE IF (deptno == 20)
THEN RETURN 400
ELSE IF (deptno == 30)
THEN RETURN 500
ELSE
RETURN 0
CASE
SELECT ename, title, sal,
CASE WHEN sal >= 3000 THEN 500
WHEN sal >= 2000 THEN 300
WHEN sal >= 1000 THEN 200
ELSE 0
END 보너스
FROM emp
WHERE title IN ('RESEARCHER', 'ANALYST');
DECODE문과 달리 CASE문에서는 등호 비교뿐만 아니라 부등호 비교도 가능하다.
ELSE를 쓰지 않으면 null로 처리된다.
IF (sal >= 3000)
THEN RETURN 500
ELSE IF (sal >= 2000)
THEN RETURN 300
ELSE IF (sal >= 1000)
THEN RETURN 200
ELSE
RETURN 0
'콤퓨타 왕기초 > SQLD/JDBC/Oracle DB' 카테고리의 다른 글
[SQL] 데이터 분석 함수 (0) | 2021.04.01 |
---|---|
[SQL] 집계함수(aggregate functions) (0) | 2021.03.31 |
[SQL] 암시적 형 변환 (0) | 2021.03.31 |
[SQL] 산술 연산자, 비교 연산자, 논리 연산자 (0) | 2021.03.31 |
[SQL] 날짜 (0) | 2021.03.31 |
Comments