Questo articolo fa parte di un gruppo di articoli relativi al linguaggio SQL per Access. Questo articolo descrive come scrivere una clausola SELECT e fornisce alcuni esempi per illustrare le diverse tecniche che possono essere usate durante la scrittura.
Per una panoramica del linguaggio SQL per Access, vedere l'articolo Linguaggio SQL per Access: nozioni fondamentali, terminologia e sintassi.
In questo articolo
Selezionare campi: la clausola SELECT
Un'istruzione SELECT inizia di solito con una clausola SELECT. Nella clausola SELECT sono specificati i nomi dei campi che contengono i dati da usare in una query. Si possono anche usare espressioni al posto dei campi o in aggiunta a questi. È persino possibile usare come campo un'altra istruzione SELECT, detta sottoquery.
Si supponga di voler conoscere i numeri di telefono dei clienti. Supponendo che il campo in cui sono memorizzati i numeri di telefono dei clienti sia denominato txtCustPhone, la clausola SELECT verrà visualizzata nel modo seguente:
SELECT [txtCustomerPhone]
È possibile usare le parentesi quadre per racchiudere il nome. Se il nome non contiene spazi o caratteri speciali, ad esempio i segni di punteggiatura, l'uso delle parentesi quadre è facoltativo. Se il nome contiene spazi o caratteri speciali, è necessario usare le parentesi quadre.
Suggerimento: Un nome con gli spazi è più facile da leggere e consente di risparmiare tempo quando si progettano moduli e report, tuttavia può richiedere una maggiore digitazione quando si scrivono istruzioni SQL. Tenere presente questa considerazione quando si assegna un nome agli oggetti nel database di Access.
Se nell'istruzione SQL sono presenti due o più campi con lo stesso nome, nella clausola SELECT è necessario aggiungere al nome di ognuno il nome dell'origine dati corrispondente. Il nome dell'origine dati deve essere lo stesso usato nella clausola FROM.
Selezionare tutti i campi
Se si vogliono includere tutti i campi di un'origine dati, è possibile elencarli uno ad uno nella clausola SELECT oppure usare il carattere jolly asterisco (*). Quando si usa l'asterisco, Access determina al momento dell'esecuzione della query quali campi sono presenti all'interno dell'origine dati e li include tutti nella query. Questo garantisce che la query sia aggiornata in caso di aggiunta di nuovi campi all'origine dati.
In un'istruzione SQL è possibile usare l'asterisco con una o più origini dati. Se si usa l'asterisco e sono presenti più origini dati, occorre indicare il nome dell'origine dati con l'asterisco, per consentire ad Access di determinare l'origine dati da cui includere tutti i campi.
Si supponga, ad esempio, di voler selezionare tutti i campi della tabella Orders ma solo il campo E-mail Address della tabella Contacts. La clausola SELECT sarà simile alla seguente:
SELECT Orders.*, Contacts.[E-mail Address]
Nota: Tenere traccia del momento in cui si usa l'asterisco. Se all'origine dati vengono successivamente aggiunti campi non previsti, i risultati della query potrebbero essere diversi da quelli desiderati.
Selezionare valori distinti
Se si sa che l'istruzione selezionerà dati ridondanti e si preferisce visualizzare solo dati distinti, è possibile usare la parola chiave DISTINCT all'interno della clausola SELECT. Si supponga, ad esempio, che ognuno dei clienti rappresenti interessi diversi, per alcuni dei quali è usato lo stesso numero di telefono. Per assicurarsi che ogni numero di telefono venga visualizzato una sola volta, la clausola SELECT deve essere la seguente:
SELECT DISTINCT [txtCustomerPhone]
Usare nomi sostitutivi per campi o espressioni: la parola chiave AS
Per qualsiasi campo presente nella visualizzazione Foglio dati è possibile modificare l'etichetta visualizzata usando la parola chiave AS e un alias di campo nella clausola SELECT. Un alias di campo è un nome assegnato a un campo in una query per rendere più leggibili i risultati. Se ad esempio si vogliono selezionare i dati di un campo denominato txtCustPhone, contenente numeri di telefono di clienti, è possibile migliorare la leggibilità dei risultati usando un alias di campo nell'istruzione SELECT, come segue:
SELECT [txtCustPhone] AS [Customer Phone]
Nota: Quando si usa un'espressione in una clausola SELECT, è necessario usare un alias di campo.
Selezionare usando un'espressione
In alcuni casi è necessario vedere i calcoli basati sui dati o recuperare solo una parte dei dati di un campo. Si supponga ad esempio di voler recuperare l'anno di nascita dei clienti in base ai dati presenti nel campo BirthDate del database. La clausola SELECT può essere simile alla seguente:
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]
Questa espressione è composta dalla funzione DatePart e da due argomenti, "yyyy" (una costante) e [BirthDate] (un identificatore).
È possibile usare qualsiasi espressione valida come campo, se l'output dell'espressione è costituito da un unico valore quando viene fornito un unico valore di input.