COALESCE와 IFNULL

Suhyeon Lee·2024년 9월 11일
0
  • MySQL에서 NULL값을 처리하기 위해 IFNULL, COALESCE 함수를 사용함
    • 조건문인 CASE와 IF 함수는 논하지 않음
  • 둘의 차이점은 무엇일까?
    • check 가능한 argument 개수 차이 (사용 방법에 차이 있음)
    • COALESCE는 SQL 표준 함수, IFNULL은 MySQL에서만

COALESCE

COALESCE(val1, val2, val3, ...): multiple(N) argument
→ val1 값이 NULL이면 val2 반환, val2도 NULL이면 val3 반환
→ val1 값이 NULL이면 val2 반환, val2 값이 NULL이 아니면 val2를 그대로 반환

  • SQL 표준 함수
  • multiple argument 처리 가능
  • 더 유연하고 표준 함수에 속하므로 이 함수를 사용하는 걸 추천

IFNULL

IFNULL(val, x): single argument
→ val 값이 NULL이면 x를 반환하고, NULL이 아니면 val을 그대로 반환

  • MySQL에서만 사용 가능
  • MySQL의 ISNULL과 동일
  • single argument 처리 가능

예시

SELECT IFNULL('some value', 'some other value');
-- returns 'some value'

SELECT IFNULL(NULL,'some other value');
-- returns 'some other value'

SELECT COALESCE(NULL, 'some other value');
-- returns 'some other value' - equivalent of the IFNULL function

SELECT COALESCE(NULL, 'some value', 'some other value');
-- returns 'some value'

SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
-- returns 'first non-null value'
profile
2 B R 0 2 B

0개의 댓글