Partager via


Combiner des conditions lorsque OR est prioritaire (Visual Database Tools)

s’applique à : SQL Server

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é

  1. 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.

  2. Créez les conditions à lier avec OR en 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 avec OR qui recherchent dans les colonnes job_lvl et status, entrez = 100 dans la colonne Filtre pour job_lvl et = 'R' dans la colonne Or... pour status.

    La saisie de ces valeurs dans la grille produit la clause suivante WHERE dans l’instruction dans le volet SQL :

    WHERE (job_lvl = 100) OR (status = 'R')
    
  3. Créez la AND condition en la entrant une seule fois pour chaque OR condition. Placez chaque entrée dans la même colonne de grille que la OR condition à laquelle elle correspond. Par exemple, pour ajouter une AND condition qui recherche la hire_date colonne et s’applique aux deux OR conditions, 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 WHERE dans 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 AND seule fois, puis en utilisant les commandes Couper et Coller dans le menu Modifier pour le répéter pour d’autres OR conditions.

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.