IFNULL? COALSECE?

김도비·2024년 10월 23일
post-thumbnail

IFNULL? COALSECE?

코드를 보다가 COALESCE(group_name, '소속 없음') 쿼리를 보고 왜 IFNULL을 안 썼을까 하는 의문이 들었다.

둘 다 MySQL에서 Null값을 처리하기 위해 사용되는 함수인데, NULL 체크할 수 있는 argument 개수에 차이가 있다.


IFNULL(val, x) - single argument

IFNULL 함수는 MySQL에서만 사용 가능하다.

val 값이 null이면 x를 반환하고, null이 아니면 val을 그대로 반환한다.

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

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

COALSECE(val1, val2, val3, ...) - multiple(N) argument

COALSECE는 SQL 표준 함수이다.

val1 값이 null이면 val2를 반환, val2도 null이면 val3를 반환한다.

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'

결론

COALSECE

  • SQL 표준 함수 (더 유연하고 표준 함수에 속하는 COALSECE 함수를 사용하는 것이 좋다)

  • multiple argument를 처리할 수 있다.

IFNULL

  • MySQL에서만 사용 기능 (MSSQL의 ISNULL과 동일)

  • single argument를 처리할 수 있다.

profile
Java Backend

0개의 댓글