rowTypeID =(1,2,3、またはnull)の列を持つ表があります。私は3の値を持たない行を返すクエリを記述したいと思います。この例では、すべてのNULL行とすべての1,2行を必要とします。3の値を持つ行は不要です。SQL Server return値と等しいではない行とNULL
現在、データベースにはANSI NULLがONに設定されています。
私はこのクエリは、私が
select * from my Table where myCol <> 3 or myCol Is NULL
を記述する必要がmyCol列
にNULL持っている任意の行を返さない
select * from myTable where myCol <> 3
を書くことができない理由として興味
私はいつもIS NULLを含める必要がありますか?つまりwhere句myCol <> 3は、Colの値としてNULLを持つ行を返します。
これは、NULLが動作する方法です。それとの比較は、IS NULLとIS NOT NULLを除いてすべてfalseです。 – kurosch
@kurosch:厳密には、次の行に続いて、NULL = NULLもNULLです。 – Marcel
@Marcel:はい、NULL = NULLは常にfalseで、そのことについてはとてもNULLである<> NULL :-) – kurosch