본문 바로가기

데이터베이스/Oracle

Oracle if 조건 함수 DECODE()

DECODE() 함수는 무려 저희가 항상 쓰는 if  else 문을 오라클 SQL안으로 가져온 함수입니다. 

DECODE() 함수는 오직 오라클에서만 사용이 가능한게 아쉽긴 하지만 굉장히 많이쓰일것 같은 함수입니다.

if문을 구현한 것이라 정말 다양하게 중첩으로도 많이 쓰일수 있습니다.

사용법도 역시나 너무 간단합니다 ㅎㅎ

DECODE( ) 함수

 

ex1)   A가 B일경우 '1' 을 출력한다. (아닐경우 다 null)

-DECODE (A,B,'1',null) (마지막 null은 생략 가능 합니다)

ex2)   A가 B일경우 '1' 을 출력하고 아닐 경우 '2'를 출력한다.

-DECODE (A,B,'1','2')

ex3)   A가 B일경우 '1' 을 출력하고 A가 C일경우 '2'를 출력하고 둘 다 아닐경우 '3'을 출력한다.

-DECODE (A,B,'1',C,'2','3')

ex4)   A가 B일경우 중에서 C가 D를 만족하면 '1'을 출력하고 C가 D가 아닐 경우 NULL을 출력한다.

-DECODE (A,B, DECODE(C,D,'1',null) )  (마지막 null은 생략 가능 합니다.)

ex5)   A가 B일경우 중에서 C가 D를 만족하면 '1'을 출력하고 C가 D가 아닐 경우 '2'를 출력한다.

-DECODE (A,B, DECODE(C,D,'1','2') )

ex6)   A가 B일경우 중에서 C가 D를 만족하면 '1'을 출력하고 C가 D가 아닐 경우 '2'를 출력하고 A가 B가 아닐 경우 '3'을 출력한다.

-DECODE (A,B, DECODE(C,D,'1','2'),'3')