2012-02-13 9 views
4

私は次のクエリでテーブルを照会しよう:OracleのNOT LIKE式はNULLを戻しませんか?

select * from name where firstname NOT LIKE 'PETER%' 

それはFIRSTNAMEがnullであるすべてのレコードを返していません。これは何らかのエラーですか、それはどうですか?私はSQL Serverの背景から来て、ここで多くのことを混乱させています。

答えて

8

NULLがLIKEと一致しません。あなたは明示的にそれを求める必要がありますOR firstname IS NULL

1

NULLとの比較は、ほとんどの場合「not true」と同じです。

SQL ServerがNOT LIKE 'PETER%'のNULL値を返す場合は、SQL Serverのバグだと思います。

+0

MS SQL Serverには、廃止予定の**モードがあります。ヌルは、通常の値と同じように '='、 '<> 'などと比較することができます。残念な機能。 –

+0

さて、SQLの標準はこれでかなり明確です... –

関連する問題