QlikWorld 2020 Global Conference. Join us to discover how to get the most from your data. Act fast. Register now and save.

Select

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.

Syntax:  

Select [all | distinct | distinctrow | top n [percent] ] fieldlist

From tablelist

[where criterion ]

[group by fieldlist [having criterion ] ]

[order by fieldlist [asc | desc] ]

[ (Inner | Left | Right | Full) join tablename on fieldref = fieldref ]

 

Inoltre, talvolta è possibile concatenare diverse istruzioni SELECT in un'unica istruzione utilizzando l'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.
  • Talvolta l'utilizzo di distinct, as,where, group by, order by o union non è supportato.
  • Il driver ODBC talvolta non accetta tutte le diverse virgolette elencate in precedenza.
Nota: La 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.

Arguments:  

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. Alcuni degli operatori e delle funzioni generalmente accettati sono: +, -, *, /, & (concatenazione di stringhe), sum(fieldname), count(fieldname), avg(fieldname)(average), month(fieldname) e così via. Consultare la documentazione del driver ODBC per ulteriori informazioni.

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.

From

where 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 consentiti includono: funzioni e operatori numerici, =, <> o #(diverso da), >, >=, <, <=, and, or,not, exists,some, all,in, oltre alle 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 QlikView, le virgolette utilizzate sono quelle preferite dal driver ODBC o dal provider OLE DB specificato nella definizione della sorgente dati nell'istruzione Connect.

Example 1:  

SELECT * FROM `Categories`;

Example 2:  

SELECT `Category ID`, `Category Name` FROM `Categories`;

Example 3:  

SELECT `Order ID`, `Product ID`,

`Unit Price` * Quantity * (1-Discount) as NetSales

FROM `Order Details`;

Example 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`

group by `Order Details`.`Order ID`;

See also: