EXISTS
DSQL, PSQL, ESQL.
[NOT] EXISTS (<select_stmt>)
Le prédicat EXISTS
utilise la sous-requête comme argument.Si le résultat de la sous-requête contient au moins une entrée, le prédicat est évalué comme vrai (TRUE), sinon le prédicat est évalué comme faux (FALSE).
Le résultat d’une sous-requête peut contenir plusieurs colonnes, puisque les valeurs ne sont pas vérifiées, mais que seul le fait qu’il y ait des lignes du résultat est enregistré.Ce prédicat ne peut prendre que deux valeurs : VRAI et FAUX.
Le prédicat NOT EXISTS
renvoie FALSE
si le résultat de la sous-requête contient au moins une entrée, sinon le prédicat renvoie TRUE
.
EXISTS
Trouvez les employés qui ont des projets.
SELECT *
FROM employee
WHERE EXISTS (SELECT *
FROM
employee_project ep
WHERE
ep.emp_no = employee.emp_no)
NOT EXISTS
Trouvez les employés qui n’ont pas de projets.
SELECT *
FROM employee
WHERE NOT EXISTS (SELECT *
FROM
employee_project ep
WHERE
ep.emp_no = employee.emp_no)