Wie kann die SQL "IST" und "=" Operatoren unterscheiden?

Baue ich einige Anweisungen vorbereitet, dass die Nutzung eingestellt Werte. Als Beispiel:

SELECT * FROM "Foo" WHERE "Bar"=@param

Manchmal @param könnte NULL. In solchen Fällen, möchte ich die Abfrage Datensätze zurückgeben, wo Bar ist NULL, aber die obige Abfrage wird das nicht tun. Ich habe gelernt, dass ich das IS Betreiber für das. In anderen Worten:

SELECT * FROM "Foo" WHERE "Bar" IS @param

Abgesehen von der unterschiedlichen Behandlung von NULL, gibt es andere Möglichkeiten, in denen die beiden oben genannten Aussagen wird sich anders Verhalten? Was ist, wenn @param ist nicht NULL ist, sondern stattdessen, sagen wir mal, 5? Ist mit der IS Betreiber in diesem Fall ein Sicheres (und vernünftige) Sache zu tun? Gibt es einige andere Ansatz, den ich einnehmen sollte?

NULL ist ein unbekannter oder nicht angegebener Wert, so dass nichts kann jemals gleich NULL.

InformationsquelleAutor Dan Moulding | 2011-03-24

Schreibe einen Kommentar