私は単純なクエリを持っている(実際のクエリはより複雑になります。これは、動的なクエリである)SQL LIKE NULLはすべてのデータベースに対して有効な構文ですか?
SELECT * FROM Employee WHERE @firstName IS NULL OR firstName LIKE @firstName
@firstNameが渡されます
- としてNULL
- '%名%'
@firstNameが '%name%'として渡されたとき。クエリは正常に動作します。
@ firstNameがNULLとして渡されたとき。クエリは、私の質問は
ある
SELECT * FROM Employee WHERE NULL IS NULL OR firstName LIKE NULL
// This query is valid syntax on MSSQL and return all employees
// because NULL IS NULL evaluated as TRUE
// And firstName LIKE NULL evaluated as FALSE -- I guess
になり、すべてのSQLデータベースの有効なfirstNameのLIKE NULLですか?
これは常にFALSEと評価されますか?
私はこのような構文https://www.w3schools.com/SQl/sql_like.asp
このhttps://msdn.microsoft.com/en-us/library/ms179859.aspx
をチェックしたしかし、私は私の答えを見つけることができませんでした。ありがとう!
あなたの答えをありがとう!アップアップされました! – Loc
私はMssql、MySQL、PostgreSQL、SQLiteでLIKE NULLをテストしました。彼らはうまくいった。しかし、Oracleデータベースでは失敗しました。 – Loc
*どのように失敗しましたか? Oracle 11.2では私にとってうまく動作します。そして、私は実際には、どのOracleのバージョンもこれを正しく処理できないと疑う。それは深刻なバグでしょう。 –