oracle DECODE 함수 사용법
* DECODE란 오라클에서만 지원하는 함수로서SELECT문장 내에서 비교연산을 수행해 주는 아주 편리한 함수입니다.
형식은 다음과 같이 사용하시면 됩니다.
DECODE(deptname, 'A',1,0)
-> deptname이 'A'와 같으면 1을 갖고 아니면 0을 갖게 됩니다.
또는 SUM함수로 합계를 내줄 수 있습니다.
SUM(DECODE(deptname, 'A',1,0)
-> deptname이 'A'와 같으면, 1을 누적하고,아니면 0을 갖게 됩니다.
2중 DECODE문도 허용됩니다. 다음을 보도록 하겠습니다.
DECODE(deptname, 'A', DECODE(name,'KIM',1),0)
-> deptname이 'A'와 같고, name이 'KIM'이면, 1을 같고, 아니면, 0을 갖는다.
2중 DECODE문을 쓸 때 두 개의 DECODE문은 AND연산으로 수행됨을
명심하길 바랍니다.
예제) 사원테이블(PA06MR0)에서 영문 성이 'KIM'으로 시작하는 사람과 'LEE'로 시작하는 사람의 합을 구하라. 단 입사년도가 올해(1998)인 사람의 합을 구하라.
SELECT EMPNAME, SUM(DECODE(SUBSTR(EMPNAME,1,3),'KIM',1,0)
+ DECODE(SUBSTR(EMPNAME,1,3),'LEE',1,0)),
FROM tableName
WHERE SUBSTR(entondate,1,4) = '1998';
GROUP BY EMPNAME;
'프로그래머의 길 > Oracle' 카테고리의 다른 글
PL/SQL (4) - 연산자 (0) | 2008.02.13 |
---|---|
PL/SQL (3) - 블럭 구조 (0) | 2008.01.25 |
PL/SQL (2) - 데이터형 (0) | 2008.01.14 |
PL/SQL (1) - 개념과 예제 (2) | 2008.01.09 |