2016-10-31 12 views
1

なぜselect * from [table] where [table].[column] != nullは私のクエリでは機能しておらず、結果は空です。なぜ[table]。[column]!= nullが機能していませんか?

しかし、select * from [table] where [table].[column] is not nullが動作しており、[table].[column]nullであることが記録されています。

Microsoft SQL Serverの!= nullis not nullの違いは何ですか?

+1

'not null'レコードを返す**' null' **で記入しますか? 'nullではない'が標準であり、 'null'と'!= 'を比較することはできません – Prisoner

+1

値でないものと比較することはできません。 NULLは値がないことを表します。何かを何も比較することはできません。 'IS NULL'または' IS NOT NULL'は '値を持っています'または '値を持っていません'の略です。 –

答えて

3

NULLは、値ではありません。これは、「不明」や「データが欠けている」のようなものを意味します。

情報がない場所には、(=!=オペレータ)についての情報もない場合は分かりません。しかし、利用可能な情報があるかどうかは、IS NULLIS NOT NULLと言うことができます。

IMHOでは、実際にはそれほど有用ではありません。しかし、それはどのようにして、長い歴史を持っています。

2

=演算子を使用してNULLと比較することはできません。NULLはが不明であるため、という値であるため、何か不明な値と一致させることはできません。そのため、列がnullである行を除外するためにIS NULL節が提供されています。

詳細については、THREE VALUED LOGICをSQL Serverで参照してください。

関連する問題