sql >> Database >  >> RDS >> Oracle

ALL operator VS Elke op een lege query

Beschouw het voorbeeld van de EMP tabel in die link.

Specifiek deze vraag -

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

In het geval van ENIGE, is de vraag die u stelt:"Is mijn salaris hoger dan dat van wie dan ook op afdeling 20 (minstens 1 persoon)". Dit betekent dat je hoopt op ten minste één persoon heeft een salaris minder dan jij. Als er geen rijen zijn, retourneert dit FALSE omdat er niemand is wiens salaris lager is dan jij, je hoopte op minstens één.

In het geval van ALLES is de voor de hand liggende vraag die u zou stellen:"Is mijn salaris hoger dan dat van iedereen?". Dat herformuleren als "Is er niemand die een hoger salaris heeft dan ik?" Als er geen rijen worden geretourneerd, is uw antwoord TRUE , omdat "er inderdaad niemand is wiens salaris hoger is dan ik.



  1. Vind alle rijen met behulp van een Unicode-bereik (zoals Cyrillische tekens) met PostgreSQL?

  2. Ik ben het wachtwoord vergeten dat ik tijdens de installatie van postgre heb ingevoerd

  3. Hoe MySQL-database naar een andere server te repliceren?

  4. Een SQL Plus-script uitvoeren in PowerShell