# Select

[](https://help.qlik.com/en-US/qlikview/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Select.htm)Выбор полей из источника данных ODBC или поставщика OLE DB осуществляется с помощью стандартных операторов SQL SELECT. Однако то, принимаются операторы SELECT или нет, зависит в основном от используемого драйвера ODBC или поставщика OLE DB.

Синтаксис:

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 ]

Более того, несколько операторов SELECT иногда могут соединяться в один посредством использования оператора union:

selectstatement Union selectstatement

Оператор SELECT интерпретируется драйвером ODBC или поставщиком OLE DB, поэтому могут возникать отклонения от общего синтаксиса SQL в зависимости от возможностей драйверов ODBC или поставщика OLE DB, например:

* as иногда недопустим, то есть aliasname должен сразу следовать за fieldname.
* as иногда является обязательным при использовании aliasname.
* distinct, as,where, group by, order by или union иногда не поддерживаются.
* Драйвер ODBC иногда допускает не все различные кавычки, перечисленные выше.

Примечание к информацииЭто не полное описание оператора SQL SELECT! Например операторы SELECT могут быть вложенными, несколько объединений могут создаваться в одном операторе SELECT, число функций, допустимых в выражении, иногда может быть довольно большим, и т. д.

Аргументы:

аргументы 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>distinct | distinct — это логическое условие, используемое в случае, если копии комбинаций значений в выбранных полях должны быть загружены только один раз. |
| [](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 — это логическое условие, используемое в случае, если копии записей в таблице источника должны быть загружены только один раз. |
| fieldlist | fieldlist ::= (\*\| field ) {, field }<br><br>Список полей, которые необходимо выбрать. Символ «\*» в качестве списка полей обозначает все поля таблицы.<br><br>fieldlist ::= field {, field }<br><br>Список одного или нескольких полей, разделенных запятыми.<br><br>field ::= ( fieldref \| expression ) [as aliasname ]<br><br>Выражение может, к примеру, быть числовой или строковой функцией, основанной на одном или нескольких других полях. Некоторые из обычно принимаемых операторов и функций: +, -, \*, /, & (объединение строк), sum(fieldname), count(fieldname), avg(fieldname)(average), month(fieldname) и т. д. Дополнительную информацию можно получить в документации драйвера ODBC.<br><br>fieldref ::= [ tablename. ] fieldname<br><br><br>tablename и fieldname являются текстовыми строками, идентичными тому, что они подразумевают. Они должны быть заключены в прямые двойные кавычки, если они содержат, например, пробелы.<br><br>Предложение as используется для назначения полю нового имени. |
| from | tablelist ::= table {, table }<br><br>Список таблиц, из которых выбираются поля.<br><br>table ::= tablename [ [as ] aliasname ]<br><br>Элемент tablename может быть в кавычках, а может и не быть.<br><br>[From](https://help.qlik.com/ru-RU/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 — предложение, которое используется для указания того, нужно ли включить запись в выборку или нет.<br><br>criterion является логическим выражением, которое иногда может быть очень сложным. Некоторые из принимаемых операторов: числовые операторы и функции, =, &lt;&gt; или #( не равно), &gt;, &gt;=, &lt;, &lt;=, and, or, not, exists, some, all, in, а также новые операторы SELECT. Дополнительную информацию можно получить в документации драйвера ODBC или поставщика OLE DB. |
| [](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 — выражение, используемое для агрегирования (группировки) нескольких записей в одну. Внутри одной группы для определенного поля все записи должны иметь одинаковое значение или поле может использоваться только изнутри выражения, например, в виде суммы или среднего значения. Выражение, основанное на одном или нескольких полях, определяется в выражении символа поля. |
| [](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 — это предложение, используемое для классификации групп подобно тому, как предложение where используется для классификации записей. |
| [](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 — предложение, используемое для указания порядка сортировки результирующей таблицы оператора 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 — это классификатор, который указывает, необходимо ли объединить несколько таблиц в одну. Имена полей и имена таблиц должны заключаться в кавычки, если в них содержатся пробелы или буквы из национальных наборов символов. Когда программа QlikView автоматически создаст скрипт, драйвер ODBC или поставщик OLE DB, указанный в определении источника данных в операторе Connect, определит используемые кавычки. |

Пример 1:

``SELECT * 
 FROM `Categories`;``

Пример 2:

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

Пример 3:

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

Пример 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`;``

## Подробнее

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