SQL ServerのNOT INはNULLも除外される
つまづきました。なのでメモです。
このようなテーブルがあったとします。
SELECT * FROM tTest
ここでValueフィールドが'A'でないものだけ取得しようとして次のWHERE句で絞ると…
SELECT * FROM tTest Where Value NOT IN ('A')
...
ValueがNULLであったId=3, 4のレコードもSELECTの結果から外れました。
いや、これがSQLの当たり前なのかもしれないが、かなりハマりました!