DECODE의 기본적인 기능은 프로그래밍 언어의 IF 문을 SQL 문장으로 사용하기 위하여 만들어진 오라클이다
FROM 절만 빼고 어디서나 사용할 수 있고 IF문의 전형적인 형태를 분류하여 DECODE문으로 나누어 사용하자
1.DECODE의 사용(등순 등호 비교) IF A = B THEN RETURN ‘T’; END IF; |
SELECT DECODE(A,B,‘T’,NULL) AS COL1 FROM TABLE이름
|
2 DECODE의 사용(등호비교 + ELSE) IF A=B THEN RETURN ‘T’ ELSE RETURN ‘F’ END IF |
SELECT DECODE(A,B,‘T’,‘F’) AS COL1 FROM TABLE이름
|
3 DECODE의 사용(ELSEIF 분기되는 등호비교)
IF A=B THEN RETURN 1 ELSEIF A=C THEN RETURN 2 ELSE RETURN 3 END IF |
SELECT DECODE(A, B, 1, C, 2, 3) FROM TABLE이름 |
4 DECODE의 사용 (부등호 비교)
SIGN, LEAST, GREATEST를 사용하여 등호비교를 한다 SIGN 은 주어진 값이 음수인지, 양수인지 아니면 0인지를 나타낸다 LEAST 주어진 값들 중 최소값을 돌려준다 GREATEST는 주어진 값들중 최대값을 돌려준다
IF A>B = 0 THEN RETURN ‘일반‘ ELSEIF 1 THEN RETURN ’실험‘ END IF |
SELECT DECODE( SIGN(A,B), 0, ‘일반‘,1, ’실험‘,-1, ’기타과목‘)AS TY |
5 DECODE의 사용(OR 또는 IN 비교) IF A IN (B, C, D) THEN RETURN ‘T’ ELSE RETURN ‘F’ END IF
IF A=B OR A=C THEN RETURN ‘T’ ELSE RETURN ‘F’ END IF
|
첫 번째 IF는 DECODE(A, B,‘T’, C, ‘T’, D,‘T’,‘F’)
두 번째 IF는
DECODE(A, B, ‘T’, C, ‘T’, ‘F’)
|
6 DECODE의 사용(AND 비교) - AND비교는 리턴 부분에 다시 IF문(DECODE)이 사용된다는 것이 핵심
IF A=B AND A=C THEN RETURN ‘T’ ELSE RETURN ‘F’ END
|
DECODE(A, B, DECODE(A, C, ‘T’, ‘F’), ‘F’) |
'IT_Web > Oracle' 카테고리의 다른 글
Oracle DECODE, 열 데이터를 행으로 변경하기, 서브쿼리 연습문제 (0) | 2020.02.27 |
---|---|
Oracle ROWNUM, 집계함수, DECODE, OUTER JOIN 연습문제 (0) | 2020.02.27 |
Oracle WINDOW 함수 활용법 (0) | 2020.02.27 |
Oracle 분석함수 활용법 (0) | 2020.02.27 |
Oracle 시퀀스, DDL 및 서브쿼리 활용문제 (0) | 2020.02.27 |