Tänk på exemplet med EMP
tabell i den länken.
Specifikt den här frågan -
SELECT e1.empno, e1.sal
FROM emp e1
WHERE e1.sal > ANY (SELECT e2.sal
FROM emp e2
WHERE e2.deptno = 20);
I händelse av NÅGON är frågan du ställer "Är min lön högre än någon på avdelning 20 (minst 1 person)". Det betyder att du hoppas på minst en person har en lägre lön än du. När det inte finns några rader returnerar detta FALSE
eftersom det inte finns någon vars lön är lägre än du, hoppades du på minst en.
I fall av ALLA är den uppenbara frågan du skulle ställa "Är min lön högre än alla?". Omformulerar det som "Finns det ingen som har högre lön än jag?" När inga rader returneras är ditt svar TRUE
, för "det finns verkligen ingen vars lön är högre än jag.