SQL

SQL nvl2, decode, case 문법

crazydeer 2022. 1. 6. 22:30
반응형

nvl2

위와 같은 데이터 테이블이 있다고 생각해봅시다.

 

예제)

SELECT ename, sal, comm, nvl2(comm, sal+comm, sal)

  FROM emp;

 

설명)

nvl2를 자세히 보면 comm(커미션)이 null이면 sal+comm이, null이 아니면 sal이 출력되도록 하는 함수입니다.

 

 

decode

예시)

SELECT ename, sal, deptno, decode(deptno, 10, 6000, 20, 3400, 0) 보너스

   FROM emp;

 

설명)

사원번호(deptno)가 10이면 6000을, 20이면 3400을 보너스라는 컬럼명으로 해서 출력하라는 의미입니다.

 

 

case

decode는 등호(같다는) 비교만 가능합니다.

그러나 case는 보통의 프로그래밍 언어의 if else와 같이 등호, 부등호 비교가 모두 가능합니다.

 

예시)

SELECT ename, sal, case when sal >= 1000 then 500 else 0 end as "보너스"

  FROM emp;

 

설명)

ename, sal을 출력하고 sal(봉급)이 1000 이상이면 500을, 그렇지 않으면 0을 "보너스"라는 컬럼명을 출력하라는 의미입니다.

 

 

반응형