티스토리 뷰

오라클 NULL 처리 함수 4가지(NVL, NVL2, NULLIF, COALESCE) 사용방법



데이터베이스 개발에서 자주 마주치게 되는 문제 중 하나가 NULL 값 처리입니다. NULL은 아무 값도 없음을 의미하며, 오류 처리와 데이터 처리에 중요한 요소로 작용합니다. 이번 글에서는 데이터베이스에서 주로 사용되는 NULL 처리 함수인 NVL, NVL2, NULLIF, COALESCE에 대해 알아보고, 각 함수를 활용하여 데이터베이스에서 NULL 값을 처리하는 방법을 살펴보겠습니다.

1. NVL 함수를 활용한 NULL 값 대체


NVL 함수는 NULL 값을 다른 값으로 대체하여 반환하는데 사용됩니다. NVL 함수의 기본적인 사용법은 다음과 같습니다


SELECT name, NVL(salary, 0) AS modified_salary FROM employee;

employee 테이블의 salary 칼럼 값이 NULL인 경우 0으로 대체하여 modified_salary라는 별칭으로 출력하고 있습니다. NVL 함수를 사용하여 데이터베이스에서 NULL 값을 처리하면, 출력할 때 대체값을 지정하여 데이터의 가독성과 처리를 편리하게 할 수 있습니다

 



2. NVL2 함수를 활용한 다양한 값 반환

NVL2 함수는 주어진 표현식이 NULL인 경우와 NULL이 아닌 경우에 서로 다른 값을 반환하는데 사용됩니다. NVL2 함수의 기본적인 사용법은 다음과 같습니다


SELECT name, NVL2(salary, salary * 1.1, 0) AS updated_salary FROM employee;

employee 테이블의 salary 칼럼 값이 NULL이 아닌 경우에는 salary 값에 10%를 더하여 updated_salary로 출력하고, NULL인 경우에는 0으로 변환하고 있습니다. NVL2 함수를 사용하면 여러 조건에 따라 다양한 값들을 반환할 수 있어서 데이터 처리의 유연성을 높일 수 있습니다.

3. NULLIF 함수를 활용한 특정 값 처리


NULLIF 함수는 두 개의 표현식을 비교하여 값이 동일한 경우 NULL을 반환하고, 값이 다른 경우에는 첫 번째 표현식의 값을 반환합니다. NULLIF 함수의 기본적인 사용법은 다음과 같습니다


SELECT name, NULLIF(salary, 0) AS non_zero_salary FROM employee;


employee 테이블의 salary 칼럼 값이 0인 경우에는 NULL을 반환하고, 0이 아닌 경우에는 salary 값을 non_zero_salary로 출력하고 있습니다. NULLIF 함수를 사용하여 특정 값과 비교하여 NULL을 처리할 수 있어서 데이터의 유효성을 확보하고 오류를 방지할 수 있습니다.

4. COALESCE 함수를 활용한 여러 값 중 첫 번째 값 반환

COALESCE 함수는 여러 개의 인수 중에서 NULL이 아닌 첫 번째 인수를 반환하는데 사용됩니다. COALESCE 함수의 기본적인 사용법은 다음과 같습니다


SELECT name, COALESCE(salary, bonus, overtime_pay) AS total_pay FROM employee;


employee 테이블의 salary, bonus, overtime_pay 칼럼 중에서 NULL이 아닌 첫 번째 값을 total_pay로 출력하고 있습니다. COALESCE 함수를 사용하여 여러 개의 값을 검사하고 처리할 수 있어서 데이터베이스에서 다양한 상황에 대응할 수 있습니다.

 



이번 글에서는 데이터베이스에서 주로 사용되는 NULL 처리 함수인 NVL, NVL2, NULLIF, COALESCE에 대해 알아보았습니다. 각 함수를 활용하여 데이터베이스에서 NULL 값을 처리할 수 있으며, 이를 통해 데이터의 가독성을 높이고 유효성을 확보하여 데이터 처리에 편의성과 유연성을 부여할 수 있습니다. 프로그래밍에서 NULL 처리는 항상 주의해야 할 중요한 부분이며, 적절한 함수의 사용으로 오류를 방지하고 안정적인 데이터 처리하시기 바랍니다.

댓글