Ich würde gerne wissen, ob es Unterschiede zwischen den beiden not equal
Betreibern <>
und !=
in Oracle gibt.
Gibt es Fälle, in denen sie unterschiedliche Ergebnisse oder unterschiedliche Leistungen liefern können?
Ich würde gerne wissen, ob es Unterschiede zwischen den beiden not equal
Betreibern <>
und !=
in Oracle gibt.
Gibt es Fälle, in denen sie unterschiedliche Ergebnisse oder unterschiedliche Leistungen liefern können?
Antworten:
Nein, es gibt überhaupt keinen Unterschied in der Funktionalität.
(Gleiches gilt für alle anderen DBMS - die meisten unterstützen beide Stile):
Hier ist die aktuelle SQL-Referenz: https://docs.oracle.com/database/121/SQLRF/conditions002.htm#CJAGAABC
Der SQL-Standard definiert nur einen einzelnen Operator für " ungleich "<>
IS NOT
äquivalent / synonom / / zu <>
und !=
? Können alle drei gleich verwendet werden?
Tatsächlich gibt es vier Formen dieses Operators:
<>
!=
^=
und selbst
¬= -- worked on some obscure platforms in the dark ages
Diese sind gleich, werden jedoch unterschiedlich behandelt, wenn eine wörtliche Übereinstimmung erforderlich ist (gespeicherte Konturen oder zwischengespeicherte Abfragen).
NOT(x = y)
vielleicht !(x = y)
usw.?
^=
(habe es selbst gesehen, als ich den Link zum Handbuch gepostet habe). Ihr Standpunkt zu zwischengespeicherten Abfragen ist jedoch gut.
Oracle
, boolean ist kein erstklassiger Typ in SQL
(der sich von unterscheidet PL/SQL
). I. e. Sie können SELECT 1 = 1 FROM dual
in einigen anderen Systemen nicht mögen. So booleans haben ihren eigenen Satz von Operatoren gelten nur in logischen Kontexten ( WHERE
oder HAVING
oder ähnliche Klauseln). NOT
ist der einzige boolesche Negationsoperator in Oracle SQL
(AFAIK).
¬= -- worked on some obscure platforms in the dark ages
- Ja, sie wurden "IBM Mainframes" genannt. Von den Tagen an, als Männer Männer waren, Frauen Frauen waren, Dinosaurier die Erde durchstreiften und Computer wassergekühlt waren. :-)
An der Universität wurde uns beigebracht, "Best Practice" zu verwenden! = Bei der Arbeit für Arbeitgeber, obwohl alle oben genannten Betreiber die gleiche Funktionalität haben.
<>
als den Operator "ungleich". Daher würde ich in Betracht ziehen, dies als "Best Practice" zu verwenden
<>
und vorziehen !=
. Hauptsächlich, weil <>
in seinem Sprichwort "kleiner als oder größer als" für mich anzunehmen scheint, dass der Datentyp eine implizite Reihenfolge hat (was nicht unbedingt wahr ist, obwohl es für alle SQL-Datentypen gilt), während !=
"nicht gleich" heißt. in einem sehr reinen Sinne.
Laut diesem Artikel arbeitet! = Schneller