Outre les comparaisons de base -- égal à, différent de, supérieur à, et inférieur à -- DB2 for i SQL propose six autres opérateurs de comparaison : In, Between, Like, Distinct, Is Null et Exists.In est probablement le plus utile des six. Une comparaison In est basée
Elargir l’horizon
sur une liste de valeurs de comparaison. Elle peut être codée en dur, comme ceci :
Select * from Customer
Where CusState
in (‘CA’, ‘NV’, ‘AZ’, ‘NM’)
Si la colonne CusState contient l’une des valeurs de la liste, les données du client seront incluses dans le jeu de résultats. Vous constaterez que les prédicats contenant In sont encore plus utiles accompagnés d’une instruction Select pour formuler la liste des valeurs de comparaison. Par exemple, l’instruction suivante produit la même liste de codes d’État (CA, NV, AZ, et NM).
Select TrState from Territory
Where TrTerr = 1
En utilisant l’instruction de sélection de territoire comme un sub-select, vous pouvez construire dynamiquement une liste pour la comparaison In. Le code ci-après, comme l’exemple ci-dessus, sélectionne tous les clients de Californie, Nevada, Arizona, et Nouveau-Mexique. Mais, contrairement à la solution codée en dur, ce code inclura automatiquement d’autres États si les définitions de territoire changent. Il est donc facile de l’adapter pour d’autres territoires ou d’autres critères de sélection client.
Select CusNumb from Customer
Where (CusState in
(Select TrState from Territory
Where TrTerr = 1))
Bien entendu, les critères de création de la liste de comparaison peuvent être bien plus complexes que ceux qui sont illustrés ici. Les prédicats qui incluent des comparaisons In sont très pratiques pour examiner et modifier des données de tests, mais cet opérateur aura aussi toute sa place dans votre code de production.
Une comparaison Between est plus facile à comprendre avec des valeurs numériques. Imaginez que, en plus de sélectionner des clients du territoire 001, vous vouliez sélectionner, pour ces mêmes clients, des valeurs de commande supérieures à 100 dollars mais inférieures à 1000 dollars. Vous pourriez bien sûr utiliser >= et <= comme dans l’exemple précédent qui spécifie un intervalle de dates, mais l’opérateur Between est généralement plus simple à coder et à comprendre.
Select CusNumb, OHNumb from Customer, OrdHead
Where CusNumb = OHCust
and (CusState in
(Select TrState from Territory
Where TrTerr = 1)
and (OHAmt between 100.00 and 1000.00))
Order by CusNumb, OHNumb
Une comparaison Like permet de développer des prédicats basés sur des valeurs partielles, avec ou sans jokers. Par exemple, Like permet de trouver tous les produits dont les descriptions incluent le mot “promotion,” ainsi que ceux dont les noms commencent par un certain jeu de caractères (“prm” dans cet exemple).
Select Prdnumb from Product
Where (PrdDesc Like ‘%Promotion%’
or PrdDesc Like ‘%promotion%’
or PrdName Like ‘prm%’)
Dans une comparaison utilisant Like, vous pouvez utiliser un signe pour cent (%) pour spécifier un joker, comme dans l’exemple. Ce signe représente zéro, ou plus, caractères ne faisant pas partie de la comparaison. Si un signe pour cent précède et suit les mots “Promotion” et “promotion,” toute description qui les contient sera sélectionnée. Pour les noms de produits, il n’y a qu’un signe pour cent, donc seuls les noms commençant par les lettres “prm” seront sélectionnés. Vous pouvez aussi inclure un trait de soulignement (_) dans votre expression pour représenter un caractère joker unique.
In, Between, et Like étendent les prédicats au-delà de simples comparaisons. Ajoutez donc ces opérateurs essentiels à votre panoplie SQL : vos instructions SQL en seront plus simples et plus puissantes.
Téléchargez cette ressource

SMART DSI – N°36
La Revue SMART DSI, analyses et dossiers pour tous les acteurs de la transformation numérique de l'entreprise, met sa nouvelle édition en accès sur demande, gagnez en compétences et expertise IT Professionnelle, découvrez les dossiers experts.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les CISO français prévoient d’investir dans la sécurité du Cloud en 2025
- Nouvelles exigences, mêmes enjeux : concilier sécurité et utilisation des données à l’ère de l’IA et des réglementations associées
- Les décideurs IT négligent les mises à jour firmware !
- La protection des données : un enjeu crucial pour les entreprises
- Défis et bénéfices d’infuser l’IA dans l’analytique et la BI
