# Select

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)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.

Sintassi:

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 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 |
| --- | --- |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>distinct | distinct è un predicato che viene utilizzato se le combinazioni duplicate dei valori nei campi selezionati devono essere caricate una sola volta. |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm) 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 }<br><br>Un elenco dei campi da selezionare. L'utilizzo del simbolo \* come elenco dei campi indica tutti i campi della tabella.<br><br>fieldlist ::= field {, field }<br><br>Un elenco di uno o più campi separati da virgole.<br><br>field ::= ( fieldref \| expression ) [as aliasname ]<br><br>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.<br><br>fieldref ::= [ tablename. ] fieldname<br><br><br>tablename e fieldname sono stringhe di testo identiche a ciò che implicano. Se contengono spazi, ad esempio, devono essere incluse fra doppie virgolette diritte.<br><br>La clausola as viene utilizzata per assegnare un nuovo nome al campo. |
| from | tablelist ::= table {, table }<br><br>Elenco di tabelle da cui vengono selezionati i campi.<br><br>table ::= tablename [ [as ] aliasname ]<br><br>tablename può essere inserito o meno tra virgolette.<br><br>[From](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/From.htm) |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>where | where è una clausola utilizzata per dichiarare se un record deve essere incluso o meno nella selezione.<br><br>criterion è un'espressione logica che a volte può risultare molto complessa. Alcuni degli operatori accettati sono: funzioni e operatori numerici, =, &lt;&gt; o #(diverso da), &gt;, &gt;=, &lt;, &lt;=, 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. |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>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. |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>having | having è una clausola utilizzata per qualificare i gruppi analogamente al modo in cui la clausola where viene utilizzata per qualificare i record. |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>order by | order by è una clausola utilizzata per dichiarare la sequenza di ordinamento della tabella risultante dall'istruzione SELECT. |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>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` `` ``group 
 by `Order Details`.`Order ID`;``

## Ulteriori informazioni

* [Connect](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/CONNECT.htm)
* [Join](https://help.qlik.com/it-IT/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)