본문 바로가기

oracle

DECODE

반응형

DECODE

DECODE는 일반적인 프로그래밍 언어의 IF문을 SQL 문장 또는 PL/SQL 안으로 끌어들여 사용하기 위하여 만들어진 오라클 함수이다.

따라서 일반적인 프로그래밍 언어의 IF문이 수행할 수 있는 기능을 포함하고 있다.


단순 등호비교

IF A = B THEN

RETURN 'T';

END IF;


ELSE를 포함하는 IF문

IF A = B THEN

RETURN 'T';

ELSE

RETURN 'F';

END IF;


[따라하기] DECODE의 사용(단순 등호 비교)

1. 주당 강의 시간과 학점이 같으면 '일반'을 돌려 받으려 한다.

SELECT LEC_ID,

DECODE(LEC_TIME,LEC_POINT,'일반')

FROM LECTURE;

-----------

LEC_TIME과 ,LEC_POINT가 같다면 일반을 출력하는 쿼리이다.


[따라하기] DECODE의 사용

1. 강의 시간과 학점이 다르게 NULL이 리턴되는 대신 '특별'이라고 리턴되기를 바란다. 그렇다면 SQL이 다음과 같이 될것이다.

SELECT LEC_ID,

DECODE(LEC_TIME,LEC_POINT,'일반','특별')

FROM LECTURE;


DECODE의 확장형

: A칼럼 과 B칼럼이 같다면 T를 리턴받고, A칼럼과 C칼럼이 같다면 F를 리턴받고 그렇지 않으면 X를 리턴받고 싶다는 문장이다.

DECODE로 옮겨보면 다음과 같다

DECODE(A,B,'T',C,'F','X')



















반응형

'oracle' 카테고리의 다른 글

outer join  (0) 2013.10.31
데이터 관계 일대일,일대다, 다대다  (0) 2013.10.31
ROWNUM  (0) 2013.10.24
ANY, ALL,EXISTS 사용 예  (0) 2013.10.24
서브쿼리(SINGLE ROW 서브쿼리,MULTI ROW 서브쿼리)  (0) 2013.10.23