과제 카페 주소
http://cafe.naver.com/fordeveloper
[oracle@localhost ~]$ lsnrctl start
함수 이어서 진행
- NVL2 ( 조건, 참 일때 값, Null일때 값 )
SQL> select ename, sal, comm, nvl2(comm, 1, 2) from emp;
ENAME SAL COMM NVL2(COMM,1,2)
---------- ---------- ---------- --------------
KTMIN 3500 2
민경_왕태 3500 2
SMITH 800 2
ALLEN 1600 300 1
WARD 1250 500 1
NULLIF( 값1, 값2 ) 값1,2 가 같으면 NULL 리턴
COALSCE( A, B, C )
- DECODE - CASE WHEN 구문과 유사한 것 많이 쓰이는 것으로 알고 있음
SQL> ed
Wrote file afiedt.buf
1 select ename, deptno,
2 decode(deptno, 10, 'Good',
3 20, 'Better',
4 30, 'Bad',
5 'NOT Bad') Scope
6* from emp
SQL> /
ENAME DEPTNO SCOPE
---------- ---------- -------
KTMIN 40 NOT Bad
민경_왕태 40 NOT Bad
SMITH 20 Better
ALLEN 30 Bad
WARD 30 Bad
아래 두 쿼리는 동일한 결과를 나타낸다. DECODE 보다는 CASE WHEN 을 더 추천함.
select ename, deptno,
decode(deptno, 10, 'Good',
20, 'Better',
30, 'Bad',
'NOT Bad') Scope
from emp
union all
select
ename,
deptno,
case deptno
when 10 then 'Good'
when 20 then 'Better'
when 30 then 'Bad'
else 'NOT Bad'
end as Scope
from emp
- 그룹함수 (표준편차, 분산 값 계산해주는 함수도 있더라..)
SQL> ed
Wrote file afiedt.buf
1* select count(ename), sum(sal), avg(sal), min(sal), max(sal) from emp
SQL> /
COUNT(ENAME) SUM(SAL) AVG(SAL) MIN(SAL) MAX(SAL)
------------ ---------- ---------- ---------- ----------
17 45025 2648.52941 800 9000
- JOIN
- SUB-QUERY
'SQL > SQL 교육' 카테고리의 다른 글
[교육] SQL초보에서실전전문가까지 ORACLE - 6 (0) | 2012.08.20 |
---|---|
[교육] SQL초보에서실전전문가까지 ORACLE - 5 (0) | 2012.08.20 |
[교육] SQL초보에서실전전문가까지 ORACLE - 3 (0) | 2012.08.14 |
[교육] SQL초보에서실전전문가까지 ORACLE - 2 (0) | 2012.08.10 |
[교육] SQL초보에서실전전문가까지 ORACLE - 1 (0) | 2012.08.09 |