SQL에서 NVL 함수

핵심 원리

NVL 함수는 SQL에서 NULL 값을 다른 값으로 대체하는 데 사용됩니다. 만약 특정 컬럼의 값이 NULL일 경우, NVL 함수는 지정한 다른 값을 반환합니다. 이로 인해 NULL 값이 계산식이나 데이터 표시에서 예상치 못한 결과를 초래하지 않도록 할 수 있습니다.

NVL2 함수는 NULL 처리에 대해 조금 더 복잡한 로직을 제공하며, 첫 번째 인수가 NULL이 아닐 경우 두 번째 인수를 반환하고, NULL일 경우 세 번째 인수를 반환합니다.

실무에서 쓰이는 이유

NVLNVL2 함수는 데이터베이스에서 NULL 값이 포함된 데이터를 처리할 때 매우 유용합니다. 특히 보고서 생성이나 데이터 분석 시 NULL 값으로 인해 발생할 수 있는 오류를 방지하고, 대신 특정 기본값으로 대체하여 일관된 데이터를 제공할 수 있습니다. 실무에서는 급여 계산이나, 인센티브 등의 데이터에 NULL 값이 포함될 때, 이 함수들을 이용해 데이터를 안정적으로 처리합니다.

연습 문제

  1. 아래 SQL 쿼리를 실행해보고, NVL 함수가 어떻게 작동하는지 확인하세요:
   SELECT ename, comm, NVL(comm, 0)
   FROM emp;
  1. SAL + COMM을 계산할 때, COMM이 NULL인 경우를 처리하는 쿼리를 작성하세요.

연습 문제 해답

  1. NVL 함수를 이용해 COMM 값이 NULL인 경우 0으로 출력합니다.
   SELECT ename, comm, NVL(comm, 0)
   FROM emp;

출력 결과:

ENAMECOMMNVL(COMM, 0)
KINGNULL0
BLAKENULL0
CLARKNULL0
JONESNULL0
MARTIN14001400
ALLEN300300
  1. SAL + COMM 계산 시 COMM이 NULL인 경우 0으로 처리하여 계산합니다.
   SELECT ename, sal, comm, NVL(comm, 0), sal + NVL(comm, 0)
   FROM emp
   WHERE job IN ('SALESMAN', 'ANALYST');

응용 문제

  1. NVL2 함수를 사용하여, COMM이 NULL이 아닐 경우 SAL + COMM을 출력하고, NULL일 경우 SAL을 출력하는 쿼리를 작성하세요.

응용 문제 해답

  1. NVL2 함수를 이용하여 다음과 같이 쿼리를 작성할 수 있습니다:
   SELECT ename, sal, comm, NVL2(comm, sal + comm, sal)
   FROM emp
   WHERE job IN ('SALESMAN', 'ANALYST');

출력 결과:

ENAMESALCOMMNVL2(COMM, SAL+COMM, SAL)
MARTIN125014002650
ALLEN16003001900
TURNER1500NULL1500
WARD12505001750
FORD3000NULL3000
SCOTT3000NULL3000

실무 유형 문제

  1. 직원 테이블에서 COMM이 NULL인 경우 0으로 변환한 후, 전체 직원의 급여와 커미션의 합을 계산하는 SQL 쿼리를 작성하세요.

실무 유형 문제 해답

  1. 다음과 같은 SQL 쿼리를 작성할 수 있습니다:
   SELECT ename, sal, comm, NVL(comm, 0), sal + NVL(comm, 0) AS total_compensation
   FROM emp;
Posts created 411

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top