데이터가 NULL인지를 확인하기 위한 연산자
# 데이터가 null 값만 출력
select *
from table_name
where column1 is null;
# 데이터가 null이 아닌 값만 출력
select *
from table_name
where column1 is not null;
+) NULL: 아직 정의 되지 않은 미지의 값 또는 현재 알 수 없는 값으로 비교 자체가 불가능한 값.
[NULL 연산 특징]
+, -, *, / 등NULL과 다른 값에 대해 산술 연산을 하면 NULL을 반환함.
=, <, >, <=, >=NULL과 다른 값에 대해 비교 연산을 하면 FALSE를 반환함.
⇒ 특정 값보다 크다/작다를 판단할 수 없음.
SQL Server에서는 ISNULL 함수를, MySQL에서는 IFNULL 함수를 사용하는데, 둘의 기능은 데이터가 null이면 다른 값으로 대체할 수 있도록 하는 함수임.
# MySQL 기준
IFNULL(컬럼, 컬럼이 null일 경우 대체할 값)
# column1의 데이터 중, null인 값은 'X'를 대체해서 출력하도록 함.
select IFNULL(column1, 'X')
from table_name;
+) 필자는 이 함수를 몰랐을 때 다음처럼 case를 이용해서 풀었음.
select (
case when column1 is null then 'X'
when column1 is not null then column1
end
)
from table_name;