날짜 연산
시간을 더할때는 /24로 나눠서 더하고 날짜끼리 계산할때는 to_date 메서드를 사용한다
select to_char (sysdate, 'YY/MM/DD/HH24:MI') 오늘날짜,
sysdate + 1 더하기1,
sysdate -1 빼기1,
to_date('20171202')- to_date('20171201') 날짜빼기,
sysdate + 13/24 시간더하기
from DUAL;
select next_day('20231012',6) from DUAL; <- 10/12 기준으로 돌아오는 금요일 구하기(1 = 일요일 부터 시작)
널값과 그냥 값을 곱해버리면 값이 null이 나오기 때문에 nvl 함수를 사용한다
아래처럼 하면 널값이 되는 commission_pct를 0으로 치환해서 계산한다
select salary * nvl(commission_pct, 0) as nvl_test
from employees
order by commission_pct;
decode 메서드를 이용해서 치환(if문 느낌)
여기선 department_id가 60이면 급여를 인상하고 인상여부를 바꿔줬다
select first_name ||' '|| last_name full_name,
department_id,
salary 원래급여,
decode(department_id, 60, salary *1.1, salary) 급여인상,
decode(department_id, 60, '10% 인상', '미인상') 인상여부
from employees;
group by having 절