NULL 데이터에 대해서 처리하는 함수 IFNULL
, CASE
, COALESCE
에 대해서 알아보자.
해당 필드값이 NULL일 때, 다른 값으로 대체하는 함수이다.
-- 기본 구조
SELECT IFNULL(FIELD_NAME, "NULL대체값") FROM TABLE_NAME;
-- NAME FIELD를 조회하는데 NULL일 경우 "No Name"으로 출력
SELECT IFNULL(NAME, "No Name") AS NAME FROM TABLE_NAME;
NULL은 IF
와 IS NULL
을 통해서 처리할 수 있다.
-- IF() 함수 기본 구조
IF(조건문, 참일때값, 거짓일때값)
-- NAME이 NULL일 경우 "No Name"으로 출력
SELECT IF(IS NULL(NAME), "No Name", NAME) AS NAME FROM TABLE_NAME;
다양한 조건식을 통해 판단하고, 조건을 만족하는 필드값을 변환할 때 사용한다.
-- 기본 구조
CASE
WHEN 조건식1 THEN 식또는값1
WHEN 조건식2 THEN 식또는값2
...
ELSE 조건에 맞는 경우가 없을 때 식또는값
END
-- NAME 필드를 조회하는데 NULL일 경우 "No Name" 출력
SELECT
CASE
WHEN NAME IS NULL THEN "No Name"
ELSE NAME
END AS NAME
FROM TABLE_NAME;
COALESCE
는 열거한 값들 중에서 가장 먼저 NULL이 아닌 값을 반환한다.
-- 기본 구조
SELECT COALESCE(FIELD, "NULL대체값") FROM TABLE_NAME;
SELECT COALESCE(FIELD1, FIELD2, FIELD3, ... , FIELDN) FROM TABLE_NAME;
-- NAME 필드를 조회하는데 NULL이면 "No Name" 출력
SELECT COALESCE(NAME, "No Name") FROM TABLE_NAME;