반응형
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 |