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를 사용해 쿼리를 작성해 보고자 한다.
'SQL' 카테고리의 다른 글
SQL 9( 평균값 AVG / 토탈값 SUM) (0) | 2023.05.04 |
---|---|
SQL 8(최대값 출력 MAX / 최소값 출력 MIN) (0) | 2023.05.03 |
SQL 6(암시적 형 변환 / NULL 값 대신 다른 데이터 출력하기 NVL,NVL2) (0) | 2023.04.28 |
SQL 5 [문자형으로 데이터 유형 변환 TO_CHAR / 날짜형으로 데이터 유형 변환 TO_DATE ] (0) | 2023.04.27 |
SQL4 (날짜간 개월 수 출력 MONTHS_BETWEEN / 개월 수 더한 날짜 출력 ADD_MONTHS / 특정 날짜 뒤 오는 날짜 출력 NEXT_DAY) (0) | 2023.04.25 |