본문 바로가기

DB/Oracle

[Oracle] Decode(if, else if, else)

Decode는 쉽게 말해, if, else if, else 같은 기능을 한다.

 

select 
	Decode(empno,'1233','Y','N')
    /*Decode(비교할 데이터 컬럼, 해당 값, true라면 해당 값이 반환, false라면 해당값이 반환)*/
    /*Decode(A, B, if(A==B), else)*/
from emp;

예를 들어 emp테이블이 임의로 있다고 가정할 때,

empno의 데이터값을 가져와 1233이 맞다면 Y 아니라면 N을 반환한다.

 

select
	Decode(empno,'1234','Y','1233','U','N')
    /*Decode(비교할 데이터컬럼, 비교값, 반환값, 비교값, 반환값, else반환값)*/
    /*Decode(A, B, if(A==B), C, else if(A==C), else)*/
from emp;

else if와 같이 여러 경우의 수, 즉 조건을 작성할 수 있다.

단, else절이 없는 경우 지정하지 않은 값이 온다면 null이 반환된다.

 

select
	Decode(empno,'1234','Y','1233','U')
	/*empno > 1235라면 null이 반환*/
from emp;

'DB > Oracle' 카테고리의 다른 글

[Oracle] DBLink @  (1) 2023.10.11
[Oracle] Merge Into  (0) 2023.09.18
[Oracle] Trigger  (0) 2023.09.12