Overvej eksemplet med EMP
tabel i det link.
Specifikt denne forespørgsel -
SELECT e1.empno, e1.sal
FROM emp e1
WHERE e1.sal > ANY (SELECT e2.sal
FROM emp e2
WHERE e2.deptno = 20);
I tilfælde af NOGEN, er spørgsmålet, du stiller, "Er min løn større end nogen i afdeling 20 (mindst 1 person)". Det betyder, at du håber på mindst én person har en lavere løn end dig. Når der ikke er nogen rækker, returnerer dette FALSE
fordi der ikke er nogen, hvis løn er mindre end dig, havde du håbet på mindst én.
I tilfælde af ALT er det åbenlyse spørgsmål, du ville stille, "Er min løn større end alle?". Omformulerer det som "Er der ingen, der har en højere løn end mig?" Når der ikke returneres rækker, er dit svar TRUE
, fordi "der er faktisk ingen, hvis løn er højere end mig.