Combinare condizioni quando OR ha la precedenza (Visual Database Tools)

Si applica a:SQL Server

Per collegare condizioni con OR e attribuire loro la precedenza sulle condizioni collegate con AND, è necessario ripetere la condizione AND per ogni condizione OR.

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, occorre creare una query con tre condizioni, un'unica condizione collegata ad altre due mediante AND:

  • I dipendenti assunti da più di cinque anni e

  • I dipendenti con livello pari a 100 o il cui stato sia "R" (retired, pensionato).

Nella procedura riportata di seguito viene illustrato come creare questo tipo di query nel riquadro Criteri.

Per combinare condizioni quando OR ha la precedenza

  1. Nel riquadro Criteriaggiungere le colonne di dati da includere nella ricerca. 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.

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

    Immettendo questi valori nella griglia, verrà prodotta la seguente clausola WHERE nell'istruzione del riquadro SQL:

    WHERE (job_lvl = 100) OR (status = 'R')  
    
  3. Creare la condizione AND immettendola una volta per ciascuna condizione OR. Collocare ogni voce nella stessa colonna della griglia in cui è presente la corrispondente condizione OR. 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... .

    Immettendo questi valori nella griglia, verrà prodotta la seguente clausola WHERE nell'istruzione del riquadro SQL:

    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.

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:

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.

Vedi anche

Convenzioni per la combinazione delle condizioni di ricerca nel riquadro Criteri (Visual Database Tools)
Specificare i criteri di ricerca (Visual Database Tools)