Betrachten Sie das Beispiel des EMP
Tabelle in diesem Link.
Speziell diese Abfrage -
SELECT e1.empno, e1.sal
FROM emp e1
WHERE e1.sal > ANY (SELECT e2.sal
FROM emp e2
WHERE e2.deptno = 20);
Im Falle von ANY lautet die Frage, die Sie stellen:"Ist mein Gehalt höher als das von jemandem in Abteilung 20 (mindestens 1 Person)". Das bedeutet, dass Sie auf mindestens einen hoffen Person hat ein geringeres Gehalt als Sie. Wenn keine Zeilen vorhanden sind, wird FALSE
zurückgegeben weil es niemanden gibt, dessen Gehalt niedriger ist als Sie, haben Sie zumindest auf eines gehofft.
Im Falle von ALLEN lautet die offensichtliche Frage, die Sie stellen würden:"Ist mein Gehalt höher als das aller anderen?". Umformuliert in „Gibt es niemanden, der mehr verdient als ich?“ Wenn keine Zeilen zurückgegeben werden, ist Ihre Antwort TRUE
, denn „es gibt tatsächlich niemanden, dessen Gehalt höher ist als ich.“