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 per collegarsi a OR inserendo la prima nella colonna della griglia Filtro e la seconda (e successive) in diverse colonne Oppure... separate. Ad esempio, per collegare le condizioni con OR che cercano nelle colonne job_lvl 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 ciascun elemento nella stessa colonna della griglia della condizione OR a cui corrisponde. Ad esempio, per aggiungere una AND condizione che cerca nella colonna hire_date e si applica a entrambe le condizioni OR, inserire < '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 è equivalente alla seguente clausola WHERE, che utilizza le parentesi per specificare la precedenza di OR rispetto a 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 (Visual Database Tools), ma successivamente si apporta una modifica alla query nei riquadri Diagramma o Criteri, il Progettista query e viste ricrea l'istruzione SQL in modo che corrisponda al formato con la AND condizione esplicitamente distribuita tra entrambe OR le condizioni.