La selezione dei campi da una sorgente dati ODBC o da un provider OLE DB viene eseguita utilizzando le istruzioni SQL SELECT standard. Tuttavia, l'ambito nel quale le istruzioni SELECT vengono accettate dipende dal driver ODBC o dal provider OLE DB utilizzato. L'utilizzo dell'istruzione SELECT richiede una connessione dati aperta all'origine.
[ (Inner | Left | Right | Full) jointablenameonfieldref = fieldref ]
Inoltre, talvolta è possibile concatenare diverse istruzioni SELECT in un'unica istruzione tramite l'utilizzo dell'operatore union:
selectstatement Union selectstatement
L'istruzione SELECT viene interpretata dal driver ODBC o dal provider OLE DB e, pertanto, possono verificarsi deviazioni dalla sintassi generale SQL a seconda delle caratteristiche dei driver ODBC o del provider OLE DB, ad esempio:
Talvolta as non è consentito, vale a dire aliasname deve seguire immediatamente fieldname.
Talvolta as è obbligatorio se si utilizza un aliasname.
distinct, as, where, group by, order by o union a volte non sono supportati.
Il driver ODBC talvolta non accetta tutte le diverse virgolette elencate in precedenza.
Nota informaticaLa descrizione qui fornita dell'istruzione SQL SELECT non è completa. Ad esempio, le istruzioni SELECT possono essere nidificate, più unioni possono essere inserite in un'unica istruzione SELECT, a volte il numero di funzioni consentito nelle espressioni può essere molto alto e così via.
Argomenti:
Argomenti
Argomento
Descrizione
distinct
distinct è un predicato che viene utilizzato se le combinazioni duplicate dei valori nei campi selezionati devono essere caricate una sola volta.
distinctrow
distinctrow è un predicato che viene utilizzato se i record duplicati presenti nella tabella sorgente devono essere caricati una sola volta.
fieldlist
fieldlist ::= (*| field ) {, field }
Un elenco dei campi da selezionare. L'utilizzo del simbolo * come elenco dei campi indica tutti i campi della tabella.
fieldlist ::= field {, field }
Un elenco di uno o più campi separati da virgole.
field ::= ( fieldref | expression ) [as aliasname ]
L'espressione può essere, ad esempio, una funzione numerica oppure una funzione di stringa basata su uno o più campi diversi. Tra gli operatori e le funzioni generalmente accettati si annoverano: +, -, *, /, & (concatenazione di stringhe), sum(fieldname), count(fieldname), avg(fieldname)(average), month(fieldname) ecc. Per ulteriori informazioni, consultare la documentazione del driver ODBC.
fieldref ::= [ tablename. ] fieldname
tablename e fieldname sono stringhe di testo identiche a ciò che implicano. Se contengono spazi, ad esempio, devono essere incluse fra doppie virgolette diritte.
La clausola as viene utilizzata per assegnare un nuovo nome al campo.
from
tablelist ::= table {, table }
Elenco di tabelle da cui vengono selezionati i campi.
table ::= tablename [ [as ] aliasname ]
tablename può essere inserito o meno tra virgolette.
where è una clausola utilizzata per dichiarare se un record deve essere incluso o meno nella selezione.
criterion è un'espressione logica che a volte può risultare molto complessa. Alcuni degli operatori accettati sono: funzioni e operatori numerici, =, <> o #(diverso da), >, >=, <, <=, and, or, not, exists, some, all, in e anche le nuove istruzioni SELECT. Consultare la documentazione del driver ODBC o del provider OLE DB per ulteriori informazioni.
group by
group by è una clausola utilizzata per aggregare (raggruppare) più record in uno solo. All'interno di un gruppo, per un determinato campo, tutti i record devono avere lo stesso valore o il campo può essere utilizzato solo all'interno di un'espressione, ad esempio una somma o una media. L'espressione basata su uno o più campi viene definita nell'espressione del simbolo del campo.
having
having è una clausola utilizzata per qualificare i gruppi analogamente al modo in cui la clausola where viene utilizzata per qualificare i record.
order by
order by è una clausola utilizzata per dichiarare la sequenza di ordinamento della tabella risultante dall'istruzione SELECT.
join
join è un qualificatore che dichiara se diverse tabelle devono essere unite in una sola. I nomi dei campi e delle tabelle devono essere delimitati da virgolette se contengono spazi vuoti o lettere dell'alfabeto nazionale. Quando lo script viene generato automaticamente da Qlik Sense, le virgolette utilizzate sono quelle preferite dal driver ODBC o dal provider OLE DB specificato nella definizione della sorgente dati nell'istruzione Connect.
Esempio 1:
SELECT *
FROM `Categories`;
Esempio 2:
SELECT `Category
ID`, `Category Name` FROM `Categories`;
Esempio 3:
SELECT `Order
ID`, `Product ID`,
`Unit Price`
* Quantity * (1-Discount) as NetSales
FROM `Order
Details`;
Esempio 4:
SELECT `Order
Details`.`Order ID`,
Sum(`Order
Details`.`Unit Price` * `Order Details`.Quantity) as `Result`
FROM `Order
Details`, Orders
where Orders.`Order
ID` = `Order Details`.`Order ID`
Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!