Le dernier opérateur de comparaison, Exists, est probablement le plus déroutant et le moins utile. À première vue, il semble similaire à In, et un prédicat qui contient Exists ressemble aussi à un prédicat qui utilise In, parce que la valeur de comparaison pour un prédicat Exists
Prédicats Exists et Quantified
est une instruction Select. Mais cette similarité est trompeuse. Un prédicat qui utilise In compare une expression à une liste de valeurs, alors que Exists détermine simplement si l’instruction Select renvoie une ligne quelconque. Le contenu du jeu de résultats n’est pas important, et il n’est pas non plus disponible pour le reste de l’instruction SQL.
L’instruction suivante produira une liste de tous les numéros de produits dans la table Product (pas seulement les produits assignés à la catégorie 1) si un produit au moins est assigné à la catégorie 1. Si aucun produit n’est assigné à la catégorie 1, cette instruction ne renverra aucun résultat.
Select PrdNumb from Product
Where Exists
(Select * from Product Where PrdCat = 1)
Les prédicats Quantified sont similaires à Exists mais plus adaptables. Un prédicat quantifié contient une instruction Select précédée par un mot-clé qui détermine le type de comparaison : All, Some, ou Any. Les résultats seront identiques si votre prédicat contient Some ou Any. L’exemple suivant donnera une liste de produits dont les catégories sont valides.
Select PrdNumb from Product
Where PrdCat = Any
(Select PCatKey from PCategory)
Une comparaison qui utilise All ne sera vraie (true) que si l’expression de gauche correspond à toutes les entrées renvoyées par Select. En règle générale, les prédicats quantifiés qui utilisent Any ou Some sont plus fonctionnels et plus faciles à comprendre que ceux qui utilisent All, mais All peut s’avérer utile dans certains cas.
Les prédicats quantifiés qui contiennent All sont plus efficaces quand on recherche des conditions autres que égal. Par exemple, All permet de savoir quels employés gagnent plus que tous ceux d’un département donné, comme dans cet exemple.
Select Empno from Employee
Where EmpSalary > ALL
(Select EmpSalary From Employee
Where EmpDept = 3)
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- CRM et souveraineté : le choix technologique est devenu un choix politique
- France : la maturité data devient le moteur du retour sur investissement de l’IA
- Cloud et IA : une maturité en retard face à l’explosion des usages
- On ne peut pas gouverner ce qu’on ne peut pas voir : pourquoi la visibilité doit-elle passer avant la gouvernance en matière de sécurité des identités ?
Articles les + lus
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
À la une de la chaîne Tech
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
