Comparisons with NULLs in SQL
ansi-sql, null, sql
Solution
Here is a nice comparison of null handling in SQLite, PostgreSQL, Oracle, Informix, DB2, MS-SQL, OCELOT, MySQL 3.23.41, MySQL 4.0.16, Firebird, SQL Anywhere, and Borland Interbase
Problem
ANSI-92 SQL mandates that comparisons with `NULL` evaluate to "falsy," eg: ``` SELECT * FROM table WHERE field = NULL SELECT * FROM table WHERE field != NULL ``` Will both return no rows because `NULL` can't be compared like that. Instead, the predicates `IS NULL` and `IS NOT NULL` have to be used instead: ``` SELECT * FROM table WHERE field IS NULL SELECT * FROM table WHERE field IS NOT NULL ``` Research has shown me that Oracle 1, PostgreSQL, MySQL and SQLite all support the ANSI syntax. Add to that list DB2 and Firebird. Aside from SQL Server with `ANSI_NULLS` turned off, what other RDBMS support the non-ANSI syntax? 1 The whole empty string = `NULL` mess notwithstanding.