2012-03-22 10 views
1

私は、SQL Server 2008SQLの同じクエリだが

select select * from program 
where program_description <> null 

にクエリを書かれている。しかし、上記のクエリの結果は空白です。 以下のクエリは私に望ましい結果を示しています。

select * from program 
where program_description is not null 

それらの間に違いはありますか?

+0

[null = "null"と "IS NULL"とは何ですか](http://stackoverflow.com/questions/2749044/what-is-null-and-is-null) – billinkc

答えて

3

はい、=および<はnullで動作しません。 IS NULLまたはIS NOT NULLを使用する必要があります

+0

TGH.keep –

+0

null値の比較で= =演算子を使用できますか? –

+0

!=はSQL演算子ではありません... – TGH

3

はい、違いがあります。 nullと比較すると、常にunknownとなります。あなたはis null

+0

program_descriptionの値がnullでないレコードの出力を取得したいと思います。もっと深く答えてください。 –

+0

@manojkumarsingh、 'is null 'は値が' null'であることを意味します。 'is not null 'は、値が' null'ではないことを意味します。 '<> null'は期待通りのことをしません。代わりに' 'not null'を使用してください。 – rid

+0

@manojkumarsingh:[Working with NULL](http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html)を参照してください。 –

1

null結果を比較する必要がある理由です

はい、違いがある - 標準に従って、nullの場合はnullを持つすべての操作。 <を含む。 null値をチェックする唯一の有効な方法は、操作is 'null'です。

+1

*標準*によると、比較の結果は 'unknown'でなく' null'ではありません。いくつかの実装は2つのコンセプトをコンバートします。 –

+0

標準には、演算子 'IS [NOT] NULL'と' IS [NOT] DISTINCT FROM'が含まれ、常にTRUEまたはFALSEに評価され、決してUNKNOWNにはなりません。 – onedaywhen

関連する問題