Condividi tramite


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

si applica a:SQL Server

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

Si supponga, ad esempio, di voler trovare tutti i dipendenti che sono stati con l'azienda più di cinque anni e che abbiano un lavoro di livello inferiore o siano ritirati. Questa query richiede tre condizioni, una singola condizione collegata a due condizioni aggiuntive con AND:

  • Dipendenti con una data di assunzione precedente a cinque anni fa, e

  • Dipendenti con un livello di lavoro pari a 100 o il cui stato è "R" (per il ritiro).

La procedura seguente illustra come creare questo tipo di query nel riquadro Criteri.

Per combinare le condizioni quando OR ha la precedenza

  1. Nel riquadro Criteri , aggiungi le colonne di dati che desideri cercare. Se si desidera eseguire una ricerca nella stessa colonna usando due o più condizioni collegate a AND, è necessario aggiungere il nome della colonna di dati alla griglia una volta per ogni valore da cercare.

  2. Creare le condizioni da collegare con OR immettendo la prima nella colonna Griglia filtro e la seconda (e quelle successive) in colonne Or... separate. Ad esempio, per collegare le condizioni con OR che cercano le job_lvl colonne e status , immettere = 100 nella colonna Filtro per job_lvl e = 'R' nella colonna Or... per status.

    L'immissione di questi valori nella griglia produce la clausola WHERE seguente nell'istruzione nel riquadro SQL:

    WHERE (job_lvl = 100) OR (status = 'R')  
    
  3. Creare la condizione AND immettendola una sola volta per ogni condizione OR. Posiziona ogni voce nella stessa colonna della griglia della condizione OR a cui corrisponde. Ad esempio, per aggiungere una condizione AND che cerca la colonna e si applica a entrambe le hire_date condizioni OR, immettere < '1/1/91' sia nella colonna Criteri che nella colonna Or... .

    L'immissione di questi valori nella griglia produce la clausola WHERE seguente nell'istruzione nel riquadro SQL:

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

    Suggerimento

    È possibile ripetere una condizione AND aggiungendola una sola volta e quindi usando i comandi Taglia e Incolla dal menu Modifica per ripeterla per altre condizioni OR.

La clausola WHERE creata da Progettazione query e Progettazione viste equivale alla clausola WHERE seguente, che usa le parentesi per specificare la precedenza di OR su AND:

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

Annotazioni

Se si immettono le condizioni di ricerca nel formato riportato immediatamente sopra nel Riquadro SQL, ma quindi si apporta una modifica alla query nei riquadri Diagramma o Criteri, il Progettista di Query e il Progettista di Viste ricrea l'istruzione SQL in modo che corrisponda al modulo con la condizione AND distribuita in modo esplicito a entrambe le condizioni OR.

Vedere anche

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