728x90
반응형

 

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’)

 

 

728x90
반응형

+ Recent posts

Powered by Tistory, Designed by wallel