sql >> Databáze >  >> RDS >> Oracle

Operátor ALL VS Any na prázdný dotaz

Zvažte příklad EMP tabulka v tomto odkazu.

Konkrétně tento dotaz -

SELECT e1.empno, e1.sal
FROM   emp e1
WHERE  e1.sal > ANY (SELECT e2.sal
                     FROM   emp e2
                     WHERE  e2.deptno = 20);

V případě JAKÉHOKOLI, otázka, kterou se ptáte, je „Je můj plat vyšší než kdokoli v oddělení 20 (alespoň 1 osoba)“. To znamená, že doufáte, že alespoň jeden člověk má nižší plat než vy. Pokud nejsou žádné řádky, vrátí FALSE protože neexistuje nikdo, jehož plat je nižší než vy, doufal jste alespoň v jednoho.

V případě VŠECH, zřejmá otázka, kterou byste se zeptali, je "Je můj plat vyšší než všichni?". Přeformulovat to jako "Není nikdo, kdo má plat větší než já?" Pokud nejsou vráceny žádné řádky, vaše odpověď je TRUE , protože „neexistuje nikdo, jehož plat je větší než já.



  1. Jak řídit procesy na straně serveru pomocí MySQL

  2. Jak funguje funkce UNHEX() v MySQL

  3. Přezimovat. PSQLException:špatná hodnota pro typ int:admin

  4. Přílohy v Oracle Applications R12