IS NULL の使い方
値がない(NULL)か調べる
書き方
列 IS NULL 列 IS NOT NULL
NULL は「値がない」こと。= NULL では比べられないので IS NULL を使います。
よく使うオプション
| オプション | 意味 |
|---|---|
IS NULL | 値が無い |
IS NOT NULL | 値がある |
IS DISTINCT FROM | NULL も 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 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。