오라클 SQL 함수 정리 - ⑤ 일반 함수
5. 일반 함수
1) nvl : null 값을 실제값으로 대체하는 함수 / nvl( , )안의 값은 둘이 형이 맞아야함
nvl(기준값, 대체값)
select salary, commission_pct, salary * 12 + nvl(commission_pct, 0)
from employees;
2) nvl2 : null값을 실제값으로 대체하는 함수
nvl2(기준값, null이 아니면 2번째 수행할 연산, 기준값이 null이면 수행할 연산)
select salary, nvl2(commission_pct, salary * 12 + commission_pct, salary * 12)
from employees;
3) coalesce : null값이 안나오도록 계속 수행/ null이 나오면 다음 인수를 계산 /
인수 제한 없음/ null 이 아니면 첫번째 인수, null이면 다음인수로/
기준값 안 넣어도 됨
select coalesce(salary*12 + commission_pct, salary*12, salary)
from employees;
4) nullif : 두개의 인수값이 동일하면 null/ 동일하지 않으면 첫번째 인수값을 보여줌
select last_name, first_name, nullif(length(last_name), length(first_name)) nullif
from employees;
5) decode : 첫번째 인수 기준값 / 두번째 인수 비교값 / 세번째 인수 참값
select employee_id, job_id, salary, decode(job_id, 'IT_PROG', salary*1.1)
from employees;
6) case : 콤마(,)대신 when then절을 씀 / ( )도 안씀 / end로 마무리 / 표준/
case는 같다(=)말고 다른 비교연산자도 표현 가능
단, 같다(=) 외의 비교연산자를 쓸경우 기준값은 when절 안에 넣어야함
select employee_id, job_id, salary,
case job_id when 'IT_PROG' then salary*1.1
when 'ST_CLERK' then salary*1.2
when 'SA_PEP' then salary*1.3
else salary
end as "revised_salary"
from employees;