Combinare condizioni quando OR ha la precedenza (Visual Database Tools)Combine Conditions When OR Has Precedence (Visual Database Tools)

Per collegare condizioni con OR e attribuire loro la precedenza sulle condizioni collegate con AND, è necessario ripetere la condizione AND per ogni condizione OR.To link conditions with OR and give them precedence over conditions linked with AND, you must repeat the AND condition for each OR condition.

Per trovare, ad esempio, i dipendenti che hanno lavorato nell'azienda per più di cinque anni con mansioni di basso livello o che sono in pensione,For example, imagine that you want to find all employees who have been with the company more than five years and have lower-level jobs or are retired. occorre creare una query con tre condizioni, un'unica condizione collegata ad altre due mediante AND:This query requires three conditions, a single condition linked to two additional conditions with AND:

  • I dipendenti assunti da più di cinque anni eEmployees with a hire date earlier than five years ago, and

  • I dipendenti con livello pari a 100 o il cui stato sia "R" (retired, pensionato).Employees with a job level of 100 or whose status is "R" (for retired).

Nella procedura riportata di seguito viene illustrato come creare questo tipo di query nel riquadro Criteri.The following procedure illustrates how to create this type of query in the Criteria pane.

Per combinare condizioni quando OR ha la precedenzaTo combine conditions when OR has precedence

  1. Nel riquadro Criteriaggiungere le colonne di dati da includere nella ricerca.In the Criteria pane, add the data columns you want to search. Per eseguire la ricerca sulla stessa colonna utilizzando due o più condizioni collegate con AND, è necessario aggiungere alla griglia il nome della colonna di dati per ciascun valore da includere nella ricerca.If you want to search the same column using two or more conditions linked with AND, you must add the data column name to the grid once for each value you want to search.

  2. Creare le condizioni da collegare con OR immettendo la prima nella colonna Filtro della griglia e la seconda (e le successive) in colonne OR… separate.Create the conditions to be linked with OR by entering the first one into the Filter grid column and the second (and subsequent ones) into separate Or... columns. Ad esempio, per collegare con OR condizioni per l'esecuzione della ricerca nelle colonne job_lvl e status , immettere = 100 nella colonna Filtro per job_lvl e = 'R' nella colonna OR... per status.For example, to link conditions with OR that search the job_lvl and status columns, enter = 100 in the Filter column for job_lvl and = 'R' in the Or... column for status.

    Immettendo questi valori nella griglia, verrà prodotta la seguente clausola WHERE nell'istruzione del riquadro SQL:Entering these values in the grid produces the following WHERE clause in the statement in the SQL pane:

    WHERE (job_lvl = 100) OR (status = 'R')  
    
  3. Creare la condizione AND immettendola una volta per ciascuna condizione OR.Create the AND condition by entering it once for each OR condition. Collocare ogni voce nella stessa colonna della griglia in cui è presente la corrispondente condizione OR.Place each entry in the same grid column as the OR condition it corresponds to. Ad esempio, per aggiungere una condizione AND che consenta di eseguire la ricerca nella colonna hire_date e sia valida per entrambe le condizioni OR, immettere < '1/1/91' nella colonna Criteri e nella colonna OR... .For example, to add an AND condition that searches the hire_date column and applies to both OR conditions, enter < '1/1/91' in both the Criteria column and the Or... column.

    Immettendo questi valori nella griglia, verrà prodotta la seguente clausola WHERE nell'istruzione del riquadro SQL:Entering these values in the grid produces the following WHERE clause in the statement in the SQL pane:

    WHERE (job_lvl = 100) AND   
      (hire_date < '01/01/91' ) OR  
      (status = 'R') AND   
      (hire_date < '01/01/91' )  
    

    Suggerimento

    Per ripetere una condizione AND, aggiungerla una volta, quindi usare i comandi Taglia e Incolla del menu Modifica per ripeterla per altre condizioni OR.You can repeat an AND condition by adding it once, and then using the Cut and Paste commands from the Edit menu to repeat it for other OR conditions.

La clausola WHERE creata da Progettazione query e Progettazione viste è equivalente alla clausola WHERE riportata di seguito, in cui le parentesi consentono di specificare la precedenza di OR su AND:The WHERE clause created by the Query and View Designer is equivalent to the following WHERE clause, which uses parentheses to specify the precedence of OR over AND:

WHERE (job_lvl = 100 OR status = 'R') AND  
   (hire_date < '01/01/91')  

Nota

Se le condizioni di ricerca vengono immesse nel formato indicato sopra nel riquadro SQLe la query viene poi modificata nel riquadro Diagramma o Criteri, in Progettazione query e Progettazione viste l'istruzione SQL verrà ricreata per assicurare la corrispondenza tra il formato in uso e la condizione AND distribuita esplicitamente a entrambe le condizioni OR.If you enter the search conditions in the format shown immediately above in the SQL Pane, but then make a change to the query in the Diagram or Criteria panes, the Query and View Designer recreates the SQL statement to match the form with the AND condition explicitly distributed to both OR conditions.

Vedere ancheSee Also

Convenzioni per la combinazione delle condizioni di ricerca nel riquadro Criteri (Visual Database Tools)Conventions for Combining Search Conditions in the Criteria Pane (Visual Database Tools)
Specifica dei criteri di ricerca (Visual Database Tools)Specify Search Criteria (Visual Database Tools)