Разгледайте примера на EMP
таблица в тази връзка.
Конкретно тази заявка -
SELECT e1.empno, e1.sal
FROM emp e1
WHERE e1.sal > ANY (SELECT e2.sal
FROM emp e2
WHERE e2.deptno = 20);
В случай на НЯКАКВО, въпросът, който задавате е „Моята заплата по-голяма ли е от тази на всеки в отдел 20 (поне 1 човек)“. Това означава, че се надявате на поне един човек има по-ниска заплата от вас. Когато няма редове, това връща FALSE
понеже няма никой с по-малка заплата от теб, надявахте се поне на един.
В случай на ВСИЧКИ, очевидният въпрос, който бихте задали, е "Моята заплата по-голяма ли е от всички?". Перифразирайки това като „Няма ли някой, който да има по-голяма заплата от мен?“ Когато няма върнати редове, вашият отговор е TRUE
, защото „наистина няма никой, чиято заплата да е по-голяма от мен.