본문 바로가기

나 취준생/SQL

SQL - nvl 함수 + SQL의 IF문 구현하기

320x100

null 값 대신에 다른 값을 출력하고 싶을 때 사용하는 함수( nvl 함수)


nvl( 컬럼명, null 대신 출력할 값 )


select ename, comm                                                                 select ename, nvl(to_char(comm),'no comm')

  from emp;                                                                               from emp;

-- emp 테이블의 사원과 커미션을 확인

                     


if 문을 SQL로 구현할 때 사용하는 함수 1 (decode 함수)


if 문 : 만약에 무슨일이 벌어지면 어떻게 행동하라고 컴퓨터 프로그래밍을 하는것


decode( 컬럼명, 조건1, 출력1, 조건2, 출력2, [그 밖의 경우] 출력 3 ) 


예제 : 부서번호가 10이면 5600을 출력하고 20이면 4500을 출력하고 나머지 부서번호는 0을 출력하기

select ename, sal, deptno, decode(deptno,10,5600,20,4500,0) as 보너스

 from emp;



하지만 decode는 특정 값과 같은 경우(=)만 거를 수 있고, 특정 값 이상일 때, 이하일 때 같은 부등호 비교는 불가능.

그럴 때 사용하는 것이 case 문이다.


if 문을 SQL로 구현할 때 사용하는 함수 2 (case 문)


case when 컬럼명 부등호조건문1 then 출력1 when 부등호조건문2 then 출력 2 else 출력 3 end


예제 : 이름, 월급, 부서번호, 보너스를 출력하는데 보너스가 부서번호가 10번이면 500을 출력하고

부서번호가 20번이면 300을 출력하고 나머지 부서번호면 0을 출력하시오


select ename, sal, deptno, case when deptno=10 then 500 when deptno=20 then 300 else 0 end as 보너스

   from emp;



반응형

'나 취준생 > SQL' 카테고리의 다른 글

SQL - 데이터 분석 함수 1  (0) 2020.11.05
SQL - 복수행 함수  (0) 2020.11.04
SQL - 단일 변환 함수  (0) 2020.11.04
SQL - 단일 함수 2  (0) 2020.11.03
SQL - 단일 함수 1  (0) 2020.11.03