> Tech > Elargir l’horizon

Elargir l’horizon

Tech - Par iTPro - Publié le 07 juin 2011
email


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

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 gratuitement cette ressource

Guide de facturation électronique, voie royale pour le DAF et la digitalisation de la fonction finance

Guide de facturation électronique, voie royale pour le DAF et la digitalisation de la fonction finance

Ce livre blanc expose les problématiques auxquelles sont confrontés les DAF modernes et souligne les bénéfices de la facturation électronique pour la trésorerie. Il dévoile également le processus de déploiement de ce projet de transformation digitale que la réglementation rendra bientôt obligatoire.

Tech - Par iTPro - Publié le 07 juin 2011