NULL 은 0 도 빈 문자열도 아니다. 어떤 연산을 해도 NULL 이고, 비교하면 참도 거짓도 아니다.
왜 그런지까지
NULL 에 무엇을 더하거나 이어 붙여도 결과는 NULL 이다. 그래서 NULL 을 다룰 때는 NVL(오라클)·COALESCE(표준) 같은 함수로 먼저 바꿔 놓아야 한다.
비교도 특별하다. `= NULL` 이나 `<> NULL` 은 절대 참이 되지 않으므로 `IS NULL`·`IS NOT NULL` 을 써야 한다. 집계 함수는 NULL 을 아예 빼고 계산하는데, COUNT(*) 만은 행 수를 세므로 NULL 이 있어도 함께 센다.
NULL 이 섞이면 어떻게 되는지 한눈에
COUNT(*) vs COUNT(열)
COUNT(*) 는 행 수를 세므로 NULL 이 있어도 센다. COUNT(열) 은 그 열이 NULL 인 행을 빼고 센다.
= NULL vs IS NULL
= NULL 은 어떤 경우에도 참이 되지 않는다. NULL 인지 확인하려면 IS NULL 을 써야 한다.
넣어 두면 오늘 · 1일 · 3일 · 7일 · 14일 · 30일 간격으로 다시 물어봅니다