私は、SQL Server 2008SQLの同じクエリだが
select select * from program
where program_description <> null
にクエリを書かれている。しかし、上記のクエリの結果は空白です。 以下のクエリは私に望ましい結果を示しています。
select * from program
where program_description is not null
それらの間に違いはありますか?
私は、SQL Server 2008SQLの同じクエリだが
select select * from program
where program_description <> null
にクエリを書かれている。しかし、上記のクエリの結果は空白です。 以下のクエリは私に望ましい結果を示しています。
select * from program
where program_description is not null
それらの間に違いはありますか?
はい、=および<はnullで動作しません。 IS NULLまたはIS NOT NULLを使用する必要があります
はい、違いがあります。 null
と比較すると、常にunknown
となります。あなたはis null
program_descriptionの値がnullでないレコードの出力を取得したいと思います。もっと深く答えてください。 –
@manojkumarsingh、 'is null 'は値が' null'であることを意味します。 'is not null 'は、値が' null'ではないことを意味します。 '<> null'は期待通りのことをしません。代わりに' 'not null'を使用してください。 – rid
@manojkumarsingh:[Working with NULL](http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html)を参照してください。 –
でnull
結果を比較する必要がある理由です
はい、違いがある - 標準に従って、nullの場合はnullを持つすべての操作。 <を含む。 null値をチェックする唯一の有効な方法は、操作is 'null'です。
*標準*によると、比較の結果は 'unknown'でなく' null'ではありません。いくつかの実装は2つのコンセプトをコンバートします。 –
標準には、演算子 'IS [NOT] NULL'と' IS [NOT] DISTINCT FROM'が含まれ、常にTRUEまたはFALSEに評価され、決してUNKNOWNにはなりません。 – onedaywhen
[null = "null"と "IS NULL"とは何ですか](http://stackoverflow.com/questions/2749044/what-is-null-and-is-null) – billinkc