본문 바로가기

TOOLS/My SQL

[My SQL] NULL 값 대응 - COALESCE(코어레스) / IFNULL 함수

728x90
728x90

SQL에서 NULL은 아무 데이터가 있지 않은 상태를 말한다.

 

이 데이터 공백을 누락한 채 Average(AVG) 같은 연산 식을 구하면 결과값에 큰 차이가 날 수 있는데,

이때 COALESCE(코어레스) 함수와 IFNULL 함수 구문을 사용하여 대응할 수 있다.

 

구문을 살펴보기 이전에 'Coalesce'라는 단어의 사전적 의미를 찾아보았다.

(더 큰 덩어리로) 합치다/연합하다/제휴하다

 

사전적 의미에서 보았듯이, NULL값을 반환하여 데이터에 포함시킨 후 정확한 데이터 값을 추출할 수 있도록 하는 것이다!

NULL값을 연산 데이터에 포함시키는 방법은 2가지가 있다.

 

 

1.  COALESCE(컬럼명, 0)

> 컬럼값이 NULL이면 0을 반환한다.

 

2. IFNULL(컬럼명,0)

> 컬럼값이 NULL이면 0을 반환한다. 

 

 

 

위의 함수를 사용하여 아래와 같이 NULL 대응/비대응 쿼리문 예시를 작성해보았다. 

 

|  NULL 대응하지 않는 쿼리문

SELECT AVG(PurchasePrice)
FROM Sales;

 

 

|  NULL 대응하는 쿼리문

1. COALESCE 함수 사용

SELECT AVG(COALESCE(PurchasePrice,0))
FROM Sales;

 

2. IFNULL 함수 사용

SELECT AVG(IFNULL(PurchasePrice,0))
FROM Sales;
728x90
728x90