본문 바로가기

DB

[개념정리] ISNULL vs NULLIF

 

  • NULLIF(5, 5)
    • 비교 연산을 통해 비교 대상 데이터가 동일할 경우 NULL을 반환, 동일 하지 않을 경우 첫번째 비교 대상을 반환한다.
      • NULLIF(5,5) => NULL 반환
      • NULLIF(5,10) => 5 반환(첫번째 인수 반환)
    • CASE로 NULLIF 기능을 구현할 수 있다.(CASE문으로 대체 가능)
      • CASE WHEN 5 = 5 THEN NULL ELSE 5 END
    • 위에 비교대상으로 지정된 5, 10 등은 변수 혹은 테이블 내부 컬럼으로 지정해서 사용하면 된다.

 

 

 

 

 

  • ISNULL(A,B)
    • A(첫번째 Param)가 NULL 일 경우 B(두번째 Param)을 반환
    • 활용 예제
      • 사람들의 평균 몸무게를 구하되 몸무게 데이터가 NULL 일 경우 특정 데이터로 대체해서 평균을 구할 때
SELECT 
	AVG(ISNULL(Weight, 50))
FROM PeopleInfo