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人)」です。これは、少なくとも1つを望んでいることを意味します 人の給料はあなたよりも少ない。行がない場合、これはFALSE
を返します 給料があなたより低い人は誰もいないので、あなたは少なくとも1人を望んでいました。
ALLの場合、あなたが尋ねるであろう明白な質問は「私の給料は誰よりも高いですか?」です。それを「私より高い給料を持っている人はいないのか」と言い換えます。行が返されない場合、答えはTRUE
です。 なぜなら、「私よりも給料が高い人は実際にいないからです。