IS NULL の使い方

値がない(NULL)か調べる

書き方

列 IS NULL
列 IS NOT NULL

NULL は「値がない」こと。= NULL では比べられないので IS NULL を使います。

よく使うオプション

オプション意味
IS NULL値が無い
IS NOT NULL値がある
IS DISTINCT FROMNULL も 1 つの値として「違う」かを比べる(PostgreSQL)

例

SELECT name FROM customers WHERE phone IS NULL;

電話番号が登録されていない客を出します。

SELECT name FROM employees WHERE manager_id IS NOT NULL;

上司のいる社員を出します(上司のいない社長は出ません)。

SELECT COUNT(*), COUNT(phone) FROM customers; count | count
-------+-------
   120 |    95
(1 row)

客の数と、電話番号のある客の数を並べて出します。差が電話番号の無い客の数です。

よくある間違い・注意

  • phone = NULL と書いても、どの行にも合いません(結果は「分からない」になるため)。必ず IS NULL と書きます。
  • 空の文字列 '' と NULL は別のものです。ただし Oracle では '' が NULL として扱われます。

実際に打って練習する

SQL コースの Lv12「空っぽの値 NULL」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜3 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

SQL 構文一覧(使い方と例)へ戻る