ANSI-92 SQL では、との比較がNULL
「偽」と評価されることが義務付けられています。たとえば、次のようになります。
SELECT * FROM table WHERE field = NULL
SELECT * FROM table WHERE field != NULL
そのように比較できないため、どちらも行を返しません。NULL
代わりに、述語IS NULL
andIS NOT NULL
を代わりに使用する必要があります。
SELECT * FROM table WHERE field IS NULL
SELECT * FROM table WHERE field IS NOT NULL
調査によると、Oracle 1、PostgreSQL、MySQL、および SQLite はすべて ANSI 構文をサポートしています。そのリストに DB2 と Firebird を追加します。
ANSI_NULLS
オフになっているSQL Server 以外に、ANSI 以外の構文をサポートしている RDBMS は何ですか?
1空の文字列全体 =NULL
混乱にもかかわらず。