私は次のクエリでテーブルを照会しよう:OracleのNOT LIKE式はNULLを戻しませんか?
select * from name where firstname NOT LIKE 'PETER%'
それはFIRSTNAMEがnullであるすべてのレコードを返していません。これは何らかのエラーですか、それはどうですか?私はSQL Serverの背景から来て、ここで多くのことを混乱させています。
私は次のクエリでテーブルを照会しよう:OracleのNOT LIKE式はNULLを戻しませんか?
select * from name where firstname NOT LIKE 'PETER%'
それはFIRSTNAMEがnullであるすべてのレコードを返していません。これは何らかのエラーですか、それはどうですか?私はSQL Serverの背景から来て、ここで多くのことを混乱させています。
NULLがLIKE
と一致しません。あなたは明示的にそれを求める必要がありますOR firstname IS NULL
NULL
との比較は、ほとんどの場合「not true」と同じです。
SQL ServerがNOT LIKE 'PETER%'
のNULL値を返す場合は、SQL Serverのバグだと思います。
MS SQL Serverには、廃止予定の**モードがあります。ヌルは、通常の値と同じように '='、 '<> 'などと比較することができます。残念な機能。 –
さて、SQLの標準はこれでかなり明確です... –