Questo articolo fa parte di un gruppo di articoli sul linguaggio SQL per Access. Questo articolo descrive come scrivere una clausola WHERE e fornisce alcuni esempi per illustrare le diverse tecniche che possono essere usate in una clausola WHERE.
In un'istruzione SQL la clausola WHERE specifica i criteri che devono essere soddisfatti dai valori dei campi per i record che contengono i valori da includere nei risultati della query.
Per una panoramica del linguaggio SQL per Access, vedere l'articolo Linguaggio SQL per Access: nozioni fondamentali, terminologia e sintassi.
In questo articolo
Limitare i risultati con i criteri
Per usare i dati per limitare il numero di record restituiti in una query, è possibile usare criteri. Un criterio di query è simile a una formula e corrisponde a una stringa che può essere costituita da riferimenti di campo, operatori e costanti. I criteri di query sono un tipo di espressione.
La tabella seguente mostra alcuni criteri di esempio e ne spiega il funzionamento.
Criteri |
Descrizione |
>25 AND <50 |
Questo criterio si applica a un campo di tipo numerico, come Prezzo o Scorte. Include solo i record il cui campo Prezzo o Scorte contiene un valore maggiore di 25 e minore di 50. |
DateDiff ("aaaa", [DataDiNascita], Date()) > 30 |
Questo criterio si applica a un campo Data/ora, come BirthDate. Nei risultati della query vengono inclusi solo i record in cui il numero di anni tra la data di nascita di una persona e la data odierna è maggiore di 30. |
Is Null |
Questo criterio può essere applicato a qualsiasi tipo di campo per visualizzare i record in cui il valore del campo è Null. |
Come mostrato nella tabella precedente, i criteri possono apparire molto diversi gli uni dagli altri, a seconda del tipo di dati del campo a cui vengono applicati e dei requisiti specifici. Alcuni criteri sono semplici e usano operatori e costanti di base. Altri sono complessi e usano funzioni, operatori speciali e riferimenti di campo.
Importante: Se un campo viene usato con una funzione di aggregazione, non è possibile specificare criteri per quel campo in una clausola WHERE. Per specificare i criteri per i campi di aggregazione viene usata, invece, una clausola HAVING. Per altre informazioni, vedere gli articoli Linguaggio SQL per Access: nozioni fondamentali, terminologia e sintassi e Clausola HAVING.
Sintassi della clausola WHERE
Nella clausola WHERE di un'istruzione SELECT vengono usati i criteri di query.
Una clausola WHERE ha la sintassi di base seguente:
WHERE field = criterion
Ad esempio, si supponga di voler sapere il numero di telefono di un cliente di cui, però, si ricorda solo il cognome, Esposito. Invece di esaminare tutti i numeri di telefono del database, è possibile usare una clausola WHERE per limitare i risultati e semplificare la ricerca del numero di telefono desiderato. Supponendo che i cognomi sono archiviati in un campo denominato LastName, la clausola WHERE sarà:
WHERE [LastName]='Bagel'
Nota: Non è necessario basare i criteri nella clausola WHERE sull'equivalenza dei valori. È possibile usare altri operatori di confronto, ad esempio maggiore di (>) o minore di (<). Ad esempio, WHERE [Price]>100.
Usare la clausola WHERE per combinare le origini dati
A volte può essere necessario combinare le origini dati sulla base dei campi che includono dati corrispondenti ma che hanno tipi di dati diversi. Ad esempio, un campo di una tabella può avere il tipo di dati numerico e lo si vuole confrontare con un campo di un'altra tabella con un tipo di dati di testo.
Non è possibile creare un join tra i campi con tipi di dati diversi. Per combinare i dati di due origini dati in base ai valori nei campi con tipi di dati diversi, si crea una clausola WHERE che usa un campo come criterio per l'altro campo, usando la parola chiave LIKE.
Si supponga ad esempio di voler usare i dati di table1 e table2, ma solo quando i dati in field1 (un campo di testo in table1) corrispondono a quelli presenti in field2 (un campo numerico in table2). La clausola WHERE sarà simile alla seguente:
WHERE field1 LIKE field2
Per altre informazioni su come creare i criteri da usare in una clausola WHERE, vedere l'articolo Esempi di criteri di query.