Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour lier des conditions avec OR et leur donner la priorité sur les conditions liées AND, vous devez répéter la AND condition pour chaque OR condition.
Par exemple, imaginez que vous souhaitez trouver tous les employés qui ont été avec l’entreprise plus de cinq ans et qui ont des emplois de niveau inférieur ou sont retraités. Cette requête nécessite trois conditions, une condition unique liée à deux conditions supplémentaires avec AND:
Employés ayant une date d’embauche antérieure à cinq ans et
Les employés ayant un niveau de travail de 100 ou dont le statut est « R » (pour les retraités).
La procédure suivante montre comment créer ce type de requête dans le volet Critères.
Combiner des conditions lorsque OR a la priorité
Dans le volet Critères (Visual Database Tools) , ajoutez les colonnes de données que vous souhaitez rechercher. Si vous souhaitez rechercher la même colonne à l’aide de deux conditions ou plus liées
AND, vous devez ajouter le nom de la colonne de données à la grille une fois pour chaque valeur que vous souhaitez rechercher.Créez les conditions à lier avec
ORen entrant la première dans la colonne grille de filtre et la deuxième (et les suivantes) dans des colonnes Or... distinctes. Par exemple, pour lier des conditions avecORqui recherchent dans les colonnesjob_lvletstatus, entrez= 100dans la colonne Filtre pourjob_lvlet= 'R'dans la colonne Or... pourstatus.La saisie de ces valeurs dans la grille produit la clause suivante
WHEREdans l’instruction dans le volet SQL :WHERE (job_lvl = 100) OR (status = 'R')Créez la
ANDcondition en la entrant une seule fois pour chaqueORcondition. Placez chaque entrée dans la même colonne de grille que laORcondition à laquelle elle correspond. Par exemple, pour ajouter uneANDcondition qui recherche lahire_datecolonne et s’applique aux deuxORconditions, entrez< '1/1/91'à la fois la colonne Critères et la colonne Or... .La saisie de ces valeurs dans la grille produit la clause suivante
WHEREdans l’instruction dans le volet SQL :WHERE (job_lvl = 100) AND (hire_date < '01/01/91') OR (status = 'R') AND (hire_date < '01/01/91')Conseil
Vous pouvez répéter une condition en l’ajoutant une
ANDseule fois, puis en utilisant les commandes Couper et Coller dans le menu Modifier pour le répéter pour d’autresORconditions.
La WHERE clause créée par le Concepteur de requêtes et de vues équivaut à la clause suivante WHERE , qui utilise des parenthèses pour spécifier la priorité de OR plus AND:
WHERE (job_lvl = 100 OR status = 'R') AND
(hire_date < '01/01/91')
Remarque
Si vous entrez les conditions de recherche dans le format indiqué immédiatement au-dessus dans le volet SQL (Visual Database Tools), mais apportez une modification à la requête dans les volets Diagramme ou Critères, le Concepteur de requêtes et de vues recrée l’instruction SQL pour qu’elle corresponde à la AND condition explicitement distribuée aux deux OR conditions.