Procédure : associer des conditions avec priorité à l'opérateur OR (Visual Database Tools)
Pour relier des conditions à l'aide de l'opérateur OR et leur accorder la priorité sur les conditions reliées à l'aide de l'opérateur AND, vous devez répéter la condition AND pour chaque condition OR.
Imaginez que vous souhaitez, par exemple, rechercher tous les employés travaillant dans la société depuis plus de cinq ans et occupant des postes de faible niveau ou étant à la retraite. Cette requête nécessite trois conditions, une condition reliée à deux autres conditions à l'aide de l'opérateur AND :
Employés dont la date d'embauche remonte à plus de cinq ans et
Employés dont le niveau de poste s'élève à 100 ou dont le statut est défini sur « R » (Retraite)
Pour créer ce type de requête dans le volet Critères, suivez la procédure ci-dessous.
Pour associer des conditions avec priorité à l'opérateur OR
Dans le volet Critères, ajoutez les colonnes de données dans lesquelles vous souhaitez effectuer la recherche. Si vous souhaitez effectuer la recherche dans une même colonne à l'aide de deux conditions (voire plus) reliées à l'aide de l'opérateur AND, vous devez ajouter le nom de cette colonne de données à la grille pour chacune des valeurs que vous souhaitez rechercher.
Créez les conditions à relier à l'aide de l'opérateur OR en entrant la première condition dans la colonne de la grille Filtre et la deuxième condition (ainsi que les conditions suivantes) dans des colonnes Ou... distinctes. Par exemple, pour relier à l'aide de l'opérateur OR des conditions effectuant une recherche dans les colonnes job_lvl et status, entrez = 100 dans la colonne Filtre pour job_lvl et = 'R' dans la colonne Ou... pour status.
La saisie de ces valeurs dans la grille génère la clause WHERE suivante dans l'instruction figurant dans le volet SQL :
WHERE (job_lvl = 100) OR (status = 'R')
Créez la condition AND en la définissant pour chaque condition OR. Effectuez chaque entrée dans la même colonne de la grille que celle de la condition OR à laquelle elle correspond. Pour ajouter, par exemple, une condition AND effectuant une recherche dans la colonne hire_date et s'appliquant aux deux conditions OR, entrez < '1/1/91' dans la colonne Critères et dans la colonne Ou....
La saisie de ces valeurs dans la grille génère la clause WHERE suivante dans l'instruction figurant 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 AND en l'ajoutant une fois, puis en utilisant les commandes Couper et Coller du menu Edition pour la répéter dans d'autres conditions OR.
La clause WHERE créée par le Concepteur de requêtes et de vues équivaut à la clause WHERE suivante, qui utilise des parenthèses pour spécifier la priorité de l'opérateur OR sur l'opérateur AND :
WHERE (job_lvl = 100 OR status = 'R') AND
(hire_date < '01/01/91')
Notes
Lorsque vous entrez des conditions de requête dans le format indiqué immédiatement au-dessus du volet SQL, mais que vous apportez par la suite des modifications à la requête figurant dans le volet Schéma ou dans le volet Critères, le Concepteur de requêtes recrée l'instruction SQL pour qu'elle corresponde à ce format, avec la condition AND répartie de manière explicite vers les deux conditions OR.