# Select

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)A seleção de campos de uma fonte de dados ODBC ou provedor OLE DB é feita usando declarações SQL SELECT padrão. No entanto, a aceitação dos comandos SELECT dependem do driver ODBC ou provedor OLE DB utilizados.

Sintaxe:

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 ]

Além disso, vários comandos SELECT podem ser conectados por meio do operador union:

selectstatement Union selectstatement

O comando SELECT é interpretado pelo driver ODBC ou provedor OLE DB, portanto, os desvios da sintaxe geral de SQL podem ocorrer dependendo das capacidades dos drivers ODBC ou provedor OLE DB, por exemplo:

* as algumas vezes não é permitido, isto é, aliasname deve aparecer imediatamente após fieldname.
* as algumas vezes é obrigatório se aliasname for utilizado.
* distinct, as,where, group by, order by ou union às vezes não têm suporte.
* Algumas vezes, o driver ODBC não aceita todos os diferentes sinais de aspas listados acima.

Nota informativaEssa não é uma descrição completa do comando SQL SELECT! Por exemplo, os comandos SELECT podem ser aninhados, várias junções podem ser feitas em um comando SELECT, o número de funções permitidas nas expressões é às vezes muito grande etc.

Argumentos:

Argumentos Select

| Argumento | Descrição |
| --- | --- |
| [](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)<br>distinct | distinct é um predicado utilizado caso as combinações de valores duplicadas nos campos selecionados devam ser carregadas somente uma vez. |
| [](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm) distinctrow | distinctrow é um predicado utilizado caso os registros duplicados na tabela fonte devam ser carregados somente uma vez. |
| fieldlist | fieldlist ::= (\*\| field ) {, field }<br><br>Uma lista dos campos a serem selecionados. O uso de \* como lista de campos indica todos os campos da tabela.<br><br>fieldlist ::= field {, field }<br><br>Uma lista de um ou mais campos, separados por vírgulas.<br><br>field ::= ( fieldref \| expression ) [as aliasname ]<br><br>A expressão pode ser, por exemplo, uma função numérica ou de caracter, baseada em um ou vários outros campos. Alguns dos operadores e funções geralmente aceitos são: +, -, \*, /, & (concatenação de string), sum(fieldname), count(fieldname), avg(fieldname)(average), month(fieldname), etc. Consulte a documentação do driver ODBC para obter mais informações.<br><br>fieldref ::= [ tablename. ] fieldname<br><br>As strings tablename e fieldname são strings de texto idênticas ao que implicam. Devem vir entre aspas duplas retas, se contiverem, por exemplo, espaços.<br><br>A cláusula as é usada para atribuir um novo nome ao campo. |
| from | tablelist ::= table {, table }<br><br>A lista de tabelas na qual os campos devem ser selecionados.<br><br>table ::= tablename [ [as ] aliasname ]<br><br>O tablename pode ou não ser colocado entre aspas.<br><br>[From](https://help.qlik.com/pt-BR/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/From.htm) |
| [](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)<br>where | where é uma cláusula utilizada para declarar se um registro deve ou não ser incluído na seleção.<br><br>criterion é uma expressão lógica que pode ser, algumas vezes, muito complexa. Alguns dos operadores aceitos são: operadores e funções numéricos, =, &lt;&gt; ou #( not equal), &gt;, &gt;=, &lt;, &lt;=, and, or,not, exists,some, all,in e também novos comandos SELECT. Consulte a documentação do driver ODBC ou provedor OLE DB para obter mais informações. |
| [](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)<br>group by | group by é uma cláusula utilizada para agregar (agrupar) vários registros em um. Dentro de um grupo, para um determinado campo, todos os registros devem ter o mesmo valor ou o campo somente poderá ser usado a partir de uma expressão, como uma soma ou média. A expressão com base em um ou vários campos é definida na expressão do símbolo do campo. |
| [](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)<br>having | having é uma cláusula usada para qualificar grupos de maneira semelhante à forma como a cláusula where é usada para qualificar registros. |
| [](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)<br>order by | order by é uma cláusula utilizada para declarar a ordem de classificação da tabela resultante do comando SELECT. |
| [](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)<br>join | join é um qualificador que define se várias tabelas devem ser combinadas em uma. Nomes de campos e de tabelas devem ser colocados entre aspas se contiverem espaços em branco ou letras dos conjuntos nacionais de caracteres. Quando o script é gerado automaticamente pelo QlikView, as aspas utilizadas são as preferidas pelo driver ODBC ou provedor OLE DB especificados na definição da fonte de dados no comando Connect. |

Exemplo 1:

``SELECT * 
 FROM `Categories`;``

Exemplo 2:

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

Exemplo 3:

``SELECT `Order 
 ID`, `Product ID`,`` `` `Unit Price` 
 * Quantity * (1-Discount) as NetSales `` ``FROM `Order 
 Details`;``

Exemplo 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`;``

## Saiba mais

* [Join](https://help.qlik.com/pt-BR/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptPrefixes/Join.htm)