Condividi tramite


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

si applica a:SQL Server

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

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.

Combinare le condizioni quando OR ha la precedenza

  1. Nel riquadro Criteri (Visual Database Tools) aggiungere le colonne di dati da 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 OR immettendo la prima nella colonna Griglia filtro e la seconda (e successive) in colonne Or... separate. Ad esempio, per collegare le condizioni con OR tale ricerca nelle 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 seguente WHERE nell'istruzione nel riquadro SQL:

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

    L'immissione di questi valori nella griglia produce la clausola seguente WHERE 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 AND condizione aggiungendola una sola volta e quindi usando i comandi Taglia e Incolla dal menu Modifica per ripeterla per altre OR condizioni.

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

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 (Visual Database Tools), ma successivamente si apporta una modifica alla query nei riquadri Diagramma o Criteri, Progettazione query e Progettazione viste ricrea l'istruzione SQL in modo che corrisponda alla maschera con la AND condizione distribuita in modo esplicito in entrambe OR le condizioni.