Ich lese die oracle documentation auf die ANY und ALL-Operatoren. Ich verstehe ihre Verwendung bis auf eine Sache. Darin heißt es:ALL Operator VS Any für eine leere Abfrage
ALL:
Wenn eine Unterabfrage gibt Zeilen Null, die Bedingung TRUE ergibt.
ANY:
Wenn eine Unterabfrage gibt Zeilen Null, wertet die Bedingung FALSCH.
Es scheint mir nicht sehr logisch. Warum würde ALL für eine leere Unterabfrage TRUE zurückgeben, aber ANY gibt FALSE zurück?
Ich bin relativ neu in SQL, also nehme ich an, dass es einen Anwendungsfall für dieses Verhalten haben würde, das wirklich kontraintuitiv zu mir ist.
ALLE und alle auf eine leere Menge sollte den gleichen Wert nein zurückgeben?
Es lohnt sich, ein Beispiel zu nennen: Wenn Sie einen Scheck wie 'empSalary> ALL haben (wählen Sie Gehalt von someTable) 'wenn es keine rows auf' select salary von someTable 'gibt, wird es als wahr ausgewertet, weil der Wert, den du kontrollierst, größer ist als'alle Werte (auch wenn sie nicht existieren)' :) –