[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」と入り、空文字の場合は何も表示されない。

なおスプレッドシートなどで見ると両方とも区別がつかない。

SQL

Posted by 管理人