Study/SQL

[MySQL] IFNULL과 NULLIF의 차이

ngool 2024. 9. 2. 13:53

본 포스트는 헷갈리기 쉬운 SQL 함수인 IFNULLNULLIF의 기능에 대해 정리한 것입니다.

 

제가 자주 헷갈리는 개념인데요, 오늘부터는 헷갈리지 않으리라.. 다짐하는 마음에서 포스팅해봅니다.


IFNULL

  • 기능
    • 첫 번째 인자가 NULL일 경우, 두 번째 인자 반환
    • 첫 번째 인자가 NULL이 아닐 경우, 첫 번째 인자 그대로 반환
  • 용도
    • NULL 값을 대체할 기본값을 제공하고 싶을 때 사용
  • 예시
SELECT IFNULL(NULL, '대체 값');  -- 결과: '대체 값'
SELECT IFNULL('Hello', '대체 값');  -- 결과: 'Hello'

 


NULLIF

  • 기능
    • 두 인자가 같으면 NULL 반환
    • 두 인자가 다르면 첫 번째 인자 반환
  • 용도
    • 두 값이 같은지 확인하고, 같을 경우 NULL로 취급하여 처리를 하고 싶을 때 사용
  • 예시
SELECT NULLIF(10, 10);  -- 결과: NULL
SELECT NULLIF(10, 20);  -- 결과: 10

요약

  • IFNULL: "앞 값이 NULL이면 뒷 값으로 바꿔줘"
  • NULLIF: "앞 값이랑 뒷 값이랑 똑같으면 NULL 반환해주고, 다르면 앞 값을 반환해줘"