2010년 5월 27일 목요일

SQL공부 #5

# 9 : NVL과 NVL2의 차이점
select empno, ename, sal, comm,
sal*12 + nvl(comm,0) as ann_sal1,
nvl2(comm, sal*12+comm, sal*12) as ann_sal2,
nvl2(comm, 'sal*12+comm', 'sal*12') as gubun
from emp;
-- nvl은 파라미터가 2개, nvl([컬럼명], 값), 컬럼명이 null이면 명시한 값을 출력
-- nvl2는 파라미터가 3개, nvl2([컬럼명], 값1, 값2), 컬럼명이 null이 아니면 값1을, null이면 값2를 출력함

# 10 : coalesce (유착하다, 합체하다, 합동하다)
 select comm a, mgr b, deptno c,
coalesce(comm, mgr, deptno, 0) as "first non-null"
 from emp;
-- 괄호 안의 인수들 중에서 차례대로 읽어서 null이 아닌 첫번째 값을 리턴한다.
-- 쓸모가 있을지는 모르겠다.

댓글 없음:

댓글 쓰기