SQL

SQL 7(IF문을 SQL로 구현하기 DECODE)

아리빠 2023. 5. 1. 21:02

1.부서 번호가 10번이라면 300, 20번이라면 400, 해당되지 않는다면 0을 출력하는 쿼리를 작성하려한다.

IF문으로 작성 한다면 어떻게 짜야할까?

 

if deptno = 10 then 300     -> 만약 부서 번호 10이면 300출력

elif deptno = 20 then 400  -> 그렇지 않고 부서 번호 20이면 400출력

else 0                                -> 위 모두 해당이 안된다면 0 출력

맨 마지막 0 은 default값

 

▶DECODE

위 IF문을 SQL에 DECODE를 통해 작성 할 수 있다.

 

 

 

사원 번호와 사원 번호가 짝수인지 홀수인지 출력하는 쿼리를 작성하려 한다.

위의 쿼리와 다르게 defaut 값은 존재하지 않고, 홀수 / 짝수를 출력한다

 

나머지를 구하는 함수 mod 를 사용하여, 2로 나눴을 때 나머지가 0이면 짝수, 1이면 홀수를 출력한다

 

if mod(empno.2) =0 then '짝수'

else if mod(empno.2) =1 them '홀수'

else = 0

 

이를 쿼리로 작성하면 

 


2.이름과 직업과 보너스 출력하는데 직업이 SALEMAN이면 보너스 5000을 출력, 나머지 직업은 보너스 2000을 출력하고자 한다

 

if문으로 먼저 작성해 보자면,

if job = slaesman then 5000

else 2000 으로 작성 가능하다

 

이를 DECODE를 사용해 쿼리를 작성해 보고자 한다.