본문 바로가기

DB

NULL 처리함수 정리(IFNULL 함수와 NULLIF 함수의 차이점) + COALESCE 함수

 

NULLIF() 함수와 IFNULL() 함수는 모두 SAP HANA에서 사용되는 함수이지만, 그 목적과 동작 방식이 다릅니다. 차이점을 살펴보겠습니다:

1. NULLIF() 함수

목적: 두 개의 값이 동일한지 비교하고, 만약 동일하면 NULL을 반환하고, 그렇지 않으면 첫 번째 인자를 반환합니다.

문법:

 
NULLIF(expression1, expression2)

동작:

  • expression1과 expression2가 같으면 NULL을 반환합니다.
  • 다르면 expression1을 반환합니다.

예시:

SELECT NULLIF(100, 100); -- 결과: NULL (두 값이 동일함) SELECT NULLIF(100, 200); -- 결과: 100 (두 값이 다름)

2. IFNULL() 함수

목적: 첫 번째 인자가 NULL인 경우 두 번째 인자로 대체해 값을 반환합니다.

문법:

 
IFNULL(expression, replacement)

동작:

  • expression이 NULL이면 replacement 값을 반환합니다.
  • 그렇지 않으면 expression 값을 그대로 반환합니다.

예시:

SELECT IFNULL(NULL, 'default'); -- 결과: 'default' (첫 번째 인자가 NULL이므로) SELECT IFNULL(100, 'default'); -- 결과: 100 (첫 번째 인자가 NULL이 아니므로)

 


주요 차이점 요약:

  • NULLIF(): 두 인자를 비교하여 **동일하면 NULL**을 반환, 다르면 첫 번째 인자를 반환합니다.
  • IFNULL(): 첫 번째 인자가 NULL이면 대체값을 반환하고, 그렇지 않으면 그대로 반환합니다.

예시 비교:

 

  • NULLIF()는 비교 함수, IFNULL()은 NULL 대체 함수로 각각의 용도가 다르므로 상황에 따라 선택하여 사용합니다.

 

추가)

1. COALESCE

COALESCE 함수는 **IFNULL**과 비슷하게 NULL 값을 처리하는 함수입니다. 하지만 **COALESCE**는 여러 인수를 받을 수 있어, 여러 값 중 첫 번째로 NULL이 아닌 값을 반환하는 특징이 있습니다.

  • 구문:COALESCE(value1, value2, ..., valueN)
    • COALESCE(value1, value2, ..., valueN)
  • 설명: COALESCE는 순차적으로 인수들을 평가하여, 첫 번째로 NULL이 아닌 값을 반환합니다. 만약 모든 인수가 NULL이면 NULL을 반환합니다.
    • SELECT COALESCE(column1, column2, 'default_value') 
      FROM your_table;
  • 예시:여기서 column1이 NULL이면 column2를, column2도 NULL이면 'default_value'를 반환합니다
반응형

'DB' 카테고리의 다른 글

윈도우 함수 옵션  (0) 2024.05.22
MSSQL 순위 함수 (ROW_NUMBER 와 DENSE_RANK)  (0) 2024.05.20
윈도우 함수 옵션  (0) 2024.05.17
MS SQL CURSOR  (0) 2024.05.16
GROUP BY와 PARTITION BY  (0) 2024.05.16