SQLのCASEは関数でなくCASE式ですし、SQL規格に定められたもので「方言」ではありません。 SQLでNULLを扱うにあたっては注意点があります。 条件として判定するには IS NULL IS NOT NULL しか使えません。 他の比較(=,<>,>,<など)はすべて結果はUNKNOWNになります。かつこれが連鎖を起こします。 代表的な例がNOT INです。 WHERE 列名 NOT IN ( 'A', 'B', 'C', ...) は WHERE 列名 <> 'A' AND 列名 <> 'B' AND 列名 <> 'C' ... と同値です。 比較リストにNULLが存在すると 列名 <> NULL となりこれはUNKNOWNになるため他の条件をすべて満たしていてもTRUEにはなりません。 NOT IN の比較対象が副問合せの場合などに思っていなかった結果が生じます。 またNULL