Select

Выбор полей из источника данных ODBC или поставщика OLE DB осуществляется с помощью стандартных операторов SQL SELECT. Однако то, принимаются операторы SELECT или нет, зависит в основном от используемого драйвера ODBC или поставщика OLE DB.

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 ]

 

Более того, несколько операторов 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, число функций, допустимых в выражении, иногда может быть довольно большим, и т. д.

Arguments:  

Аргумент Описание
distinct distinct — это логическое условие, используемое в случае, если копии комбинаций значений в выбранных полях должны быть загружены только один раз.
distinctrow distinctrow — это логическое условие, используемое в случае, если копии записей в таблице источника должны быть загружены только один раз.
fieldlist fieldlist ::= (*| field ) {, field }

Список полей, которые необходимо выбрать. Символ «*» в качестве списка полей обозначает все поля таблицы.

fieldlist ::= field {, field }

Список одного или нескольких полей, разделенных запятыми.

field ::= ( fieldref | expression ) [as aliasname ]

Выражение может, к примеру, быть числовой или строковой функцией, основанной на одном или нескольких других полях. Некоторые из обычно принимаемых операторов и функций: +, -, *, /, & (объединение строк), sum(fieldname), count(fieldname), avg(fieldname)(average), month(fieldname), и т. д. Дополнительную информацию см. в документации к драйверу ODBC.

fieldref ::= [ tablename. ] fieldname

tablename и fieldname являются текстовыми строками, идентичными тому, что они подразумевают. Они должны быть заключены в прямые двойные кавычки, если они содержат, например, пробелы.

Предложение as используется для назначения полю нового имени.
from tablelist ::= table {, table }

Список таблиц, из которых выбираются поля.

table ::= tablename [ [as ] aliasname ]

Элемент tablename может быть в кавычках, а может и не быть.

From

where where — предложение, которое используется для указания того, нужно ли включить запись в выборку или нет.

criterion является логическим выражением, которое иногда может быть очень сложным. Некоторые из принимаемых операторов: числовые операторы и функции, =, <> или #( не равно), >, >=, <, <=, and, or, not, exists, some, all, in, а также новые операторы SELECT. Дополнительную информацию можно получить в документации драйвера ODBC или поставщика OLE DB.

group by group by — выражение, используемое для агрегирования (группировки) нескольких записей в одну. Внутри одной группы для определенного поля все записи должны иметь одинаковое значение или поле может использоваться только изнутри выражения, например, в виде суммы или среднего значения. Выражение, основанное на одном или нескольких полях, определяется в выражении символа поля.
having having — это предложение, используемое для классификации групп подобно тому, как предложение where используется для классификации записей.
order by order by — предложение, используемое для указания порядка сортировки результирующей таблицы оператора SELECT.
join join — это классификатор, который указывает, необходимо ли объединить несколько таблиц в одну. Имена полей и имена таблиц должны заключаться в кавычки, если в них содержатся пробелы или буквы из национальных наборов символов. Когда программа Qlik Sense автоматически создаст скрипт, драйвер ODBC или поставщик OLE DB, указанный в определении источника данных в операторе 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: