[Oracle] NULL이면 0 처리 방법 (SUM NULL 치환)
- 데이터베이스/오라클
- 2023. 2. 26.
오라클에서 수치값이 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으로 치환할 수 있다. 쿼리문의 상황에 따라서 내부에서 치환할지 외부에서 치환할지 적절하게 판단 후 사용하면 된다.