Prédicat EXISTS
Le prédicat EXISTS vérifie la présence ou l'absence d'une condition spécifiée par une sous-requête.
Utilisez la syntaxe suivante :
EXISTS ( sous-requête )
EXISTS
expression-chemin-valorisé-collection
Le résultat de EXISTS est vrai si la sous-requête renvoie au moins une valeur ou si l'expression de chemin correspond à une collection non vide, sinon le résultat est faux.
Pour inverser un prédicat EXISTS, faites-le précéder de l'opérateur logique NOT.
Exemple : Prédicat EXISTS
Pour renvoyer les divisions dont l'un des employés au moins a un salaire supérieur à 1000000 :
SELECT OBJECT(d) FROM DeptBean d
WHERE EXISTS ( SELECT 1 FROM IN (d.emps) e WHERE e.salary > 1000000 )
Pour renvoyer les divisions sans employés :
SELECT OBJECT(d) FROM DeptBean d
WHERE NOT EXISTS ( SELECT 1 FROM IN (d.emps) e)
La requête précédente peut également être rédigée comme suit :
SELECT OBJECT(d) FROM DeptBean d WHERE NOT EXISTS
d.emps