Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL Server

SQL Server NULLIF 함수 완벽 정리: 개념, 구문, 예제까지 한눈에

이 글에서는 SQL Server에서 NULLIF 함수를 사용하는 방법을 구체적인 구문과 예제와 함께 자세히 소개합니다. 예제를 통해 함수의 동작 원리를 시각적으로 이해하고 실무에 바로 적용할 수 있도록 도와드립니다.

NULLIF 함수란?

SQL Server의 NULLIF 함수는 전달된 두 개의 표현식을 서로 비교하는 함수입니다. 첫 번째 표현식과 두 번째 표현식의 값이 같으면 NULL을 반환하고, 두 값이 다르면 첫 번째 표현식을 그대로 반환합니다.

즉, NULLIF는 특정 조건에서 값을 NULL로 치환하고 싶을 때 유용하게 사용되며, 내부적으로 아래의 CASE 표현식과 동일하게 동작합니다.

CASE WHEN 표현식1 = 표현식2 THEN NULL ELSE 표현식1 END

구문

SQL Server에서 NULLIF 문을 사용하려면 다음과 같은 구문을 사용합니다:

NULLIF(표현식1, 표현식2)

매개변수:

  1. 표현식1, 표현식2: 서로 비교할 표현식입니다. 두 표현식의 값은 반드시 동일한 데이터 형식이거나 암시적으로 변환 가능한 형식이어야 합니다.

참고 사항:

  • NULLIF 함수는 SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 이상 버전에서 모두 사용할 수 있습니다.
  • 두 표현식이 같지 않으면 항상 첫 번째 표현식이 반환되며, 같으면 NULL이 반환됩니다.

예제

다양한 데이터 유형(문자열, 숫자, 날짜)으로 NULLIF 문을 사용하는 방법을 살펴보겠습니다.

SELECT NULLIF('TipsMake.com', 'TipsMake.com');
-- 결과: NULL (두 값이 같으므로 NULL 반환)

SELECT NULLIF('TipsMake.com', 'QuanTriMang');
-- 결과: 'TipsMake.com' (두 값이 다르므로 첫 번째 값 반환)

SELECT NULLIF(12, 12);
-- 결과: NULL (두 값이 같으므로 NULL 반환)

SELECT NULLIF(12, 45);
-- 결과: 12 (두 값이 다르므로 첫 번째 값 반환)

SELECT NULLIF('2019-05-01', '2019-05-01');
-- 결과: NULL (두 날짜가 같으므로 NULL 반환)

SELECT NULLIF('2019-05-01', '2019-04-30');
-- 결과: '2019-05-01' (두 날짜가 다르므로 첫 번째 값 반환)

실무 활용 팁

NULLIF는 주로 0으로 나누기 오류를 방지할 때 자주 활용됩니다. 예를 들어 분모가 0이면 나누기 연산에서 오류가 발생하는데, NULLIF를 사용하면 이를 안전하게 처리할 수 있습니다.

SELECT 분자 / NULLIF(분모, 0) FROM 테이블명;

위 쿼리처럼 분모가 0이면 NULLIF가 NULL을 반환하고, NULL로 나누기 연산의 결과 역시 NULL이 되므로 오류 없이 쿼리가 실행됩니다.