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