ich eine SQL-Anweisung haben, wo ich eine Spalte prüfen Sie, das Wort ‚rufen‘ zu machen, ist es nicht so:Was die Begründung dieser SQL-Syntax ist
select * from TableName where PFSeat <> 'call'
Aber diese Aussage nicht enthalten Datensätze, bei denen PFSeat ist Null. Um alle Datensätze zu bekommen Ich brauche ich habe die Erklärung zu ändern, dies ist es
select * from TableName where (PFSeat <> 'call' OR PFSeat Is Null)
aussehen wie ein Grund, warum es codiert, wo ich nicht alle Datensätze ich von der ersten Anweisung müssen? Was ist der Grund?
Nicht alle DBMS gleich geschaffen sind. Oracle zum Beispiel gibt 'null' nicht mit einem '<>' – JohnHC
Der Grund ist, dass 'null' ein sehr spezieller Nicht-Wert ist, der nicht mit' = 'oder' <> 'verglichen werden kann. So wurde SQL vor 30 Jahren definiert. Aber Sie können die Bedingung zu vereinfachen, wo PFSeat unterscheidet sich von Call ' –
Per Definition ist jeder andere Operator als IS NULL mit einem NULL-Wert verwendet FALSE. Und Oracle ist keine Ausnahme von dieser Regel. –