generated at
SQLで、= NULLではなく、IS NULLと書く理由
NULL (SQL) = NULL ではなく IS NULL と書く理由は、SQLのNULLは値でも変数でもないから
値ではない特殊な NULL 用に、特殊な構文 IS が必要になった


以下のテーブルについて考える
sql
CREATE TABLE hoge ( id INT, isX BOOLEAN -- NULLを許容するBOOLEAN ); INSERT INTO hoge (id, isX) VALUES (1, true), (2, true), (3, false), (4, NULL);
以下の2つは、式自体がNULLになるので、何の結果も返ってこない
SELECT x FROM hoge WHERE isX = NULL
SELECT x FROM hoge WHERE isX <> NULL
NULLだけ取り出すなら、 IS NULL という構文を使う必要がある
SELECT x FROM hoge WHERE isX IS NULL



参考