: Null값을 exp1 값으로 변환
: 해당 컬럼이 null이면 exp2값을, null이 아니면 exp1값을 리턴
>> nvl2(mgr, mgr||'담당','상위자')
-> mgr이 mull이면 '상위자', null이 아니면 '담당' 리턴)
: exp1과 exp2값을 비교해 같으면 null 다르면 exp1값을 리턴
>> nullif(job, 'SALESMAN')
->job이 SALESMAN 이면 NULL, 아니면 job 데이터 리턴
: exp1, exp2, ..., expN 중 null이 아닌 첫번째 값을 이용
: If –then-else 문의 역할 수행 (조건부 조회를 손쉽게 수행)
>> DECODE(JOB, 'ANALYST', SAL*1.1
,'CLERK', SAL*1.2
,'MANAGER', SAL*1.3
,'SALESMAN', SAL*1.4, SAL)
DECODE는 컬럼과 데이터 사이에 연산자가 없다.
따라서 모든 조건을 '=' 로 취급한다.
: If –then-else 문의 역할
>> CASE job WHEN 'ANALYST' THEN sal * 1.1
WHEN 'CLERK' THEN sal * 1.2
WHEN 'MANAGER' THEN sal * 1.3
WHEN 'PRESIDENT' THEN sal * 1.4
WHEN 'SALESMAN' THEN sal * 1.5
ELSE sal
END salary
>>CASE WHEN sal < 1000 THEN 'A'
WHEN sal < 2500 THEN 'B'
ELSE 'C'
END grade
DECODE와 달리 컬럼과 데이터 사이에 연산자 사용 가능하다.