Clausola WHERE

Specifica quali record delle tabelle elencate nella clausola FROM sono interessati da un'istruzione SELECT, UPDATE o DELETE.

Sintassi

SELECT elencocampi
FROM espressionetabella
WHERE criteri

Un'istruzione SELECT che include una clausola WHERE è composta dalle parti seguenti:

Parte

Descrizione

elencocampi

Nome del campo o dei campi da recuperare insieme agli eventuali alias dei nomi di campo, ai predicati di selezione (ALL, DISTINCT, DISTINCTROW o TOP) e altre opzioni dell'istruzione SELECT.

espressionetabella

Nome della tabella o delle tabelle di cui recuperare i dati.

criteri

Indica un'espressione che i record devono soddisfare per essere inclusi nei risultati della query.


Osservazioni

Il motore di database di Microsoft Access seleziona i record che soddisfano le condizioni elencate nella clausola WHERE. Se non si specifica una clausola WHERE, la query restituisce tutte le righe della tabella. Se si specificano più tabelle nella query e non è stata inclusa alcuna clausola WHERE o JOIN, la query genera un prodotto cartesiano delle tabelle.

La clausola WHERE è facoltativa, ma, se inclusa, segue la clausola FROM. Ad esempio, è possibile selezionare tutti i dipendenti del reparto vendite (WHERE Dept = 'Sales') o tutti i clienti di età compresa tra 18 e 30 anni (WHERE Age Between 18 And 30).

Se non si usa una clausola JOIN per eseguire operazioni di join SQL su più tabelle, l'oggetto Recordset risultante non sarà aggiornabile.

La clausola WHERE è simile alla clausola HAVING e consente di stabilire quali record vengono selezionati. Analogamente, la clausola HAVING consente di specificare quali record vengono visualizzati dopo che sono stati raggruppati con la clausola GROUP BY.

La clausola WHERE consente di eliminare i record che si vuole escludere dall'operazione di raggruppamento eseguita da una clausola GROUP BY.

Usare le varie espressioni per determinare i record restituiti dall'istruzione SQL. Ad esempio, l'istruzione SQL seguente consente di selezionare tutti i dipendenti il cui stipendio supera 21.000 euro:

SELECT LastName, Salary FROM Employees WHERE Salary > 21000;

In una clausola WHERE è possibile includere fino a 40 espressioni collegate mediante operatori logici, quali And e Or.

Quando si immette un nome di campo che contiene uno spazio o un segno di punteggiatura, racchiuderlo tra parentesi quadre ([ ]). Una tabella delle informazioni sui clienti può, ad esempio, includere informazioni su clienti specifici:

SELECT [Customer’s Favorite Restarant]

Quando si specifica l'argomento criteri, i valori letterali di data devono essere indicati nel formato statunitense anche se non si usa la versione statunitense del motore di database di Microsoft Access. Ad esempio, la data 10 maggio 1996 viene espressa come 10/5/96 nel Regno Unito e 5/10/96 negli Stati Uniti. Assicurarsi di racchiudere i valori letterali di data tra cancelletti (#), come illustrato negli esempi seguenti.

Per trovare i record la cui data è 10 maggio 1996 in un database del Regno Unito, è necessario usare l'istruzione SQL seguente:

SELECT * FROM Orders WHERE ShippedDate = #5/10/96#;

È anche possibile usare la funzione DateValue che riconosce le impostazioni internazionali stabilite da Microsoft Windows®. Usare, ad esempio, questo codice per gli Stati Uniti:

SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');

Usare invece questo codice per il Regno Unito:

SELECT * FROM Orders WHERE ShippedDate = DateValue('10/5/96');

Nota : Se la colonna a cui viene fatto riferimento nella stringa dei criteri è di tipo GUID, la sintassi dell'espressione dei criteri è leggermente diversa:

WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}

Assicurarsi di includere i trattini e le parentesi graffe annidate come illustrato negli esempi.



Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×