[SQL] NULLとは何か
NULLとは何も入っていないという意味
NULL(ヌル)とは「何も入っていない」という意味を表しているが、NULLという値ではない。
値ではないので 「age=NULL」や「age=’NULL’」では取れない。NULLの場合は「IS NULL」や「IS NOT NULL」を指定する。
もしageが10,20,30,NULLの4つのどれかだったとすると結果は以下のようになる
条件 | 結果 |
WHERE age IN (10,20) | ageが10か20に該当するレコード |
WHERE age NOT IN (10,20) | ageが30に該当するレコード(NULLは取れない) |
WHERE age=NULL | エラー |
WHERE age IS NULL | ageがNULLのレコード |
WHERE age IS NOT NULL | ageが10か20か30に該当するレコード |
WHERE age IS NULL or age IN (10,20) | ageが10か20に該当するレコードまたはageがNULLのレコード |
空文字とNULLの違い
ややこしいのはNULLとは別に空白もあり、この場合は「=”」とする必要がある。BQのコンソールではNULLの場合は薄い文字で「null」と入り、空文字の場合は何も表示されない。
なおスプレッドシートなどで見ると両方とも区別がつかない。