データマネジメントの学校
← コースに戻る

未ログインのため、この講座の進捗は記録されません。ログインすると記録が残るようになります。

NULLの扱い(IS NULL, COALESCE)

NULLは「値が存在しない」ことを表す特別な値。NULLは他の値と比較できないため、= NULLのように書いても意図通りに動かない。NULLかどうかを調べるにはIS NULL / IS NOT NULLを使う。

SELECT customer_name
FROM customers
WHERE phone IS NULL;

NULLを別の値に置き換えて表示したいときはCOALESCEを使う。COALESCEは、引数を左から順に見て、最初にNULLでない値を返す関数。

SELECT
  customer_id,
  COALESCE(phone, '未登録') AS phone
FROM customers;

集計関数(SUM・AVGなど)はNULLを自動的に無視して計算する点にも注意する。例えばCOUNT(column)はNULLでない行だけを数え、COUNT(*)は行数そのものを数える。