이름 | 의미 |
---|---|
NVL(exp1, exp2) | 주어진 exp1이 NULL일 경우 exp2로 치환 |
NVL2(exp1, exp2, exp3) | exp1이 NULL이 아니면 exp2를, NULL이면 exp3로 치환 |
NULLIF(exp1, exp2) | exp1과 exp2의 값이 동일하면 NULL을 반환하고, 다를 경 |
우 exp1을 반환
DECODE(exp1,exp2,exp3)| exp1이 exp2와 같으면 exp3를 출력
emp 테이블(사원)의 comm 컬럼(성과금)의 NULL값을 0으로 치환
SELECT empno, ename, NVL(comm, 0) comm FROM emp;
SELECT empno, ename, nvl2(comm, sal+comm, sal) pay, sal, comm FROM
emp;
SELECT NULLIF(10, 10), NULLIF('A', 'B') FROM dual;
SELECT DECODE(100, 100, 'EQUAL', 'UNEQUAL') FROM dual;
SELECT empno, ename, deptno,
DECODE(deptno, 10, '회계팀', 20, '개발팀', 30, '영업팀', 40, '운
영팀') deptname
FROM emp;
SELECT 컬럼명
CASE
WHEN 조건 THEN 출력할값
WHEN 조건 THEN 출력할값 ...
WHEN 조건 THEN 출력할값
ELSE 기본으로출력할값
END AS 별칭
FROM 테이블명;
// DECODE -> CASE문
SELECT
ename,
CASE
WHEN deptno = 10 THEN '회계팀'
WHEN deptno = 20 THEN '개발팀'
WHEN deptno = 30 THEN '영업팀'
WHEN deptno = 40 THEN '운영팀'
ELSE '팀없음'
END AS team
AS team
FROM emp;