Cet article fait partie d’une série d’articles à propos d’Access SQL. Cet article explique comment écrire une clause WHERE et s’appuie sur des exemples pour illustrer diverses techniques que vous pouvez utiliser dans une clause WHERE.
Dans une instruction SQL, la clause WHERE spécifie les critères que les valeurs de champ doivent remplir pour que les enregistrements contenant les valeurs figurent dans les résultats de requête.
Pour une vue d’ensemble d’Access SQL, voir l’article Access SQL : concepts de base, vocabulaire et syntaxe.
Contenu de cet article
Limiter les résultats à l’aide de critères
Lorsque vous voulez utiliser des données pour limiter le nombre d’enregistrements affichés dans une requête, vous pouvez utiliser critères. Un critère de requête ressemble à une formule, c’est-à-dire à une chaîne qui comprend des références de champ, des opérateurs et des constantes. Les critères de requête sont un type de expression.
Le tableau suivant contient des exemples de critères et explique leur fonctionnement.
Critère |
Description |
>25 et <50 |
Ce critère s’applique à un champ Nombre, comme Prix ou UnitésEnStock. Seuls les enregistrements dont le champ Prix ou UnitésEnStock contient une valeur supérieure à 25 et inférieure à 50 sont inclus. |
DiffDate ("aaaa", [DateNaissance], Date()) > 30 |
Ce critère s’applique à un champ Date/Heure, comme DateNaissance. Seuls les enregistrements dont le nombre d’années entre la date de naissance d’une personne et la date du jour est supérieur à 30 sont inclus dans les résultats de la requête. |
Est Null |
Ce critère peut s’appliquer à tout type de champ. Il permet d’afficher les enregistrements dont la valeur de champ est Null. |
Comme l’illustre la table précédente, les critères peuvent être très différents les uns des autres en fonction du type de données du champ auquel ils s’appliquent, ainsi que de vos exigences. Certains sont simples et utilisent des opérateurs de base et des constantes. D’autres sont plus complexes et utilisent des fonctions ou des opérateurs spéciaux et incluent des références de champ.
Important : Si un champ est utilisé avec une fonction d’agrégation, vous ne pouvez pas spécifier de critères pour ce champ dans une clause WHERE. Vous devez utiliser une clause HAVING pour spécifier les critères à appliquer aux champs agrégés. Pour plus d’informations, voir les articles SQL Access : concepts de base, vocabulaire et syntaxe et Clause HAVING.
Syntaxe de la clause WHERE
Vous utilisez des critères de requête dans la clause WHERE d’une instruction SELECT.
Une clause WHERE comporte la syntaxe de base suivante :
WHERE field = criterion
Par exemple, supposons que vous recherchez le numéro de téléphone d’un client, mais vous ne vous souvenez que de son nom de famille, Bagel. Plutôt que de rechercher dans tous les numéros de téléphone de votre base de données, vous pouvez utiliser une clause WHERE pour limiter les résultats et faciliter votre recherche. En supposant que les noms sont stockés dans un champ appelé LastName, votre clause WHERE se présente comme suit :
WHERE [LastName]='Bagel'
Remarque : Il est inutile de baser les critères de votre clause WHERE sur l’équivalence des valeurs. Vous pouvez utiliser d’autres opérateurs de comparaison, tels que supérieur à (>) ou inférieur à (<). Par exemple, WHERE [Price]>100.
Utiliser la clause WHERE pour combiner des sources de données
Vous pouvez être amené à combiner des sources de données sur la base de champs qui comportent des données correspondantes, mais dont les types de données sont différents. Par exemple, un champ dans une table peut avoir un type de données Numérique, et vous souhaitez comparer ce champ à un champ figurant dans une autre table et dont le type de données est Texte.
Vous ne pouvez pas créer de jointure entre des champs ayant des types de données différents. Pour combiner les données de deux sources de données en fonction des valeurs de champs dont les types de données sont différents, vous créez une clause WHERE qui utilise un champ en tant que critère pour l’autre champ, à l’aide du mot clé LIKE.
Par exemple, supposons que vous vouliez utiliser des données de table1 et table2, mais uniquement lorsque les données du champ field1 (champ de texte dans table1) correspond aux données du champ field2 (champ numérique dans table2). Votre clause WHERE doit se présenter comme suit :
WHERE field1 LIKE field2
Pour plus d’informations sur la création de critères à utiliser dans une clause WHERE, voir l’article Exemples de critères de requête.