par Mike Cravitz Ce mois-ci, nous allons voir l'utilisation du prédicat Between dans la clause Where d'une requête SQL, dans le but de trouver une valeur située entre deux bornes Je vous présente aussi un puissant mécanisme, appelé sous-requête. Et, pour faire bonne mesure, je montre comment utiliser la fonction SQL Count pour renvoyer le nombre de lignes d'une table de résultat de requête. En route !
Prédicat Between et sous-requêtes SQL
Le prédicat Between sert à référencer un ensemble de lignes dans
lesquelles une valeur de colonne ou autre expression se situe dans une certaine
fourchette. Pour en comprendre le fonctionnement, prenons l’exemple de la table
YouOweMe. La figure 1 illustre le SQL servant à créer la table et la table elle-même.
La requête
Select *
From YouOweMe
Where AmtDue Between 50 and 110
renvoie le résultat illustré figure 2.
Notons que, comme Between est inclusif, SQL vérifie les deux bornes (inférieure
et supérieure) indiquées, pour déterminer si le prédicat de la fourchette est
satisfait. C’est pourquoi la table de résultat inclut Surly Sue, qui a une dette
correspond à la borne inférieure (50) et BadDebt Bob, parce que sa dette correspond
à la borne supérieure de la fourchette donnée (110).
Supposons maintenant que nous voulions produire une requête pour connaître tous
les débiteurs dont le nom commence par B, C ou D (autrement dit, B et D inclus).
A première vue, la requête suivante pourrait faire l’affaire :
Select *
From YouOweMe
Where DebtorName Between ‘B’ and ‘D’
Mais la figure 3 montre que l’on récupère des lignes dans lesquelles la première
lettre du nom est B ou C mais pas D (Deadbeat Charlie n’est pas renvoyé). Normal,
puisque nous avons défini la colonne DebtorName comme une zone caractère de
longueur 20 (figure 1). Les valeurs auxquelles nous comparons la zone caractère
ont toutes deux une longueur de un caractère. A l’instar de la plupart des langages
évolués, SQL étend la longueur d’une ou de plusieurs valeurs de comparaison
plus courtes pour s’aligner sur la plus longue, et remplit à droite avec des
blancs les valeurs étendues avant de comparer. Dans le cas présente, SQL ajoute
aux valeurs les plus courtes (B et D) 19 blancs supplémentaires pour égaler
la longueur de DebtorName avant de faire la comparaison. SQL renvoie donc un
ensemble de lignes dans lesquelles DebtorName se situe entre B suivi de 19 blancs
et D suivi de 19 blancs. Comme DebtorName DeadBeat Charlie est supérieur à D
suivi de 19 blancs, il est exclu du résultat de la requête.
Pour inclure des noms commençant par la lettre D, nous pouvons indiquer le prédicat
DebtorName Between ‘B’ and ‘E’
La meilleure méthode consiste à effectuer la comparaison
sur le premier caractère du nom au lieu des 20 caractères
pour obtenir le résultat souhaité. Mais, s’il existe une ligne dans laquelle
DebtorName est égal à la lettre E suivie de 19 blancs, le prédicat ci-dessus
la sélectionnera également.
Pour limiter le résultat de la requête à tous les noms commençant par une lettre
entre B et D inclus, la meilleure méthode consiste à effectuer la comparaison
sur le premier caractère du nom au lieu des 20 caractères, en utilisant le prédicat
Substr( DebtorName, 1, 1 )
Between ‘B’ and ‘D’
La fonction scalaire Substr (Substring) du prédicat ne choisit que le premier
caractère de DebtorName, et donc SQL n’a pas besoin d’allonger les valeurs B
et D. (Pour revoir la fonction Substr de SQL, voir l’article » Manipuler des
dates en SQL « , NEWSMAGAZINE, janvier 2000.)
Téléchargez cette ressource

Rapport Forrester sur les services de réponse aux incidents de cybersécurité
Dans ce rapport, basé sur 25 critères, Forrester Consulting passe au crible les 14 principaux fournisseurs de services de réponse aux incidents de cybersécurité du marché. Cette analyse complète permet aux professionnels de la sécurité et de la gestion des risques d’évaluer et de sélectionner les solutions les plus adaptées à leurs besoins.
Les articles les plus consultés
- Activer la mise en veille prolongée dans Windows 10
- Et si les clients n’avaient plus le choix ?
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Cybersécurité Active Directory et les attaques de nouvelle génération
Les plus consultés sur iTPro.fr
- Transformation numérique : les entreprises françaises changent de méthode de gestion de projet en cours de route
- Innover de manière responsable et rapide avec l’IA en Europe
- Analyse Microsoft Patch Tuesday Août 2025
- L’essor des agents IA préfigure-t-il l’avenir des opérations en entreprise ?
- Les entreprises françaises se sentent dépassées par l’IA
