본문 바로가기
프로그래머의 길/Oracle

oracle DECODE 함수 사용법

by 제이콥케이 2008. 1. 18.
반응형

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