[Oracle] NULL이면 0 처리 방법 (SUM NULL 치환)

오라클에서 수치값이 NULL인 경우 0으로 처리하여 표시하기 위해서는 NVL 함수를 사용하면 된다. 그리고 SUM 함수를 사용하여 합산할 때 결과가 NULL인 경우 0으로 표시할 때도 NVL 함수를 사용할 수 있다. 집계함수(SUM, AVG, MIN, MAX 등)는 연산할 칼럼의 값이 NULL인 경우 해당 행은 제외하고 처리를 하기 때문에 필요할 경우 꼭 NVL 함수로 치환 후 연산을 해야 한다.

 

NULL이면 0 처리 방법

SELECT NULL
     , NVL(NULL, 0)  --NULL을 0으로 치환
  FROM dual

 

 

NVL 함수를 사용하여 NULL을 0으로 치환할 수 있다.

 

SELECT empno
     , ename
     , comm
     , NVL(comm, 0) AS nvl_comm
  FROM emp
 WHERE job IN ('MANAGER', 'SALESMAN')

 

 

데이터 조회 시 수치값 칼럼의 값이 NULL인 경우 0으로 치환하여 표시한다.

 

SUM 함수 사용 시 NULL이면 0 처리 방법

SELECT SUM(comm)
     , SUM(NVL(comm, 0))
  FROM emp
 WHERE job = 'MANAGER'

 

 

SUM 함수를 사용하여 데이터를 합산할 때 결과가 NULL인 경우 0으로 표시하기 위해서는, SUM 함수 내부에서 NVL 함수를 사용하여 NULL 값을 0으로 치환하여 합산하면 된다.

 

SELECT SUM(comm)
     , SUM(NVL(comm, 0))  --SUM 함수 내부에 NVL 사용
     , NVL(SUM(comm), 0)  --SUM 함수 외부에 NVL 사용
  FROM emp
 WHERE job = 'MANAGER'
   AND comm IS NULL

 

 

SUM 함수 외부에서 NVL 함수를 사용하여 NULL을 0으로 치환할 수 있다. 쿼리문의 상황에 따라서 내부에서 치환할지 외부에서 치환할지 적절하게 판단 후 사용하면 된다.

 

 

[Oracle] 오라클 NVL, NVL2 함수 사용법

오라클 NVL, NVL2 함수 사용법 해당 칼럼의 값이 NULL 값인 경우 특정값으로 출력하고 싶으면 NVL 함수를 사용하고, NULL 값이 아닐 경우 특정값으로 출력하고 싶으면 NVL2 함수를 사용하면 된다. NVL 함

gent.tistory.com

 

[Oracle] 오라클 SUM 함수 사용법

오라클에서 그룹별로 합계를 구할 때는 SUM 함수를 사용한다. 기본적으로 GROUP BY 절을 사용하여 그룹별로 합계를 구하며, GROUP BY 절을 사용하지 않고 OVER 절을 사용하면 데이터를 그룹화하지 않고

gent.tistory.com

 

댓글

Designed by JB FACTORY