# Select

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)Pola są wybierane ze źródła danych ODBC lub dostawcy OLE DB z użyciem standardowych instrukcji SELECT języka SQL. Akceptacja instrukcji SELECT zależy jednak od używanego sterownika ODBC lub dostawcy OLE DB. Używanie instrukcji SELECT wymaga otwartego połączenia danych ze źródłem.

Składnia:

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 ]

Istnieje też możliwość konkatenacji kilku instrukcji SELECT za pomocą operatora union:

selectstatement Union selectstatement

Instrukcja SELECT jest interpretowana przez sterownik ODBC lub dostawcę OLE DB, w zależności od zakresu funkcji danych sterowników SQL lub dostawców ODBC mogą zatem występować różnice w porównaniu z ogólną składnią OLE DB, na przykład:

* Klauzula as niekiedy nie jest dozwolona, czyli aliasname musi następować bezpośrednio po fieldname.
* Klauzula as niekiedy jest obowiązkowa, gdy używane jest aliasname.
* Klauzule distinct, as,where, group by, order by lub union czasami nie są obsługiwane.
* Niektóre sterowniki ODBC nie akceptują niektórych z wymienionych powyżej znaków cudzysłowów.

InformacjaNie jest to pełny opis instrukcji SELECT języka SQL! Instrukcje SELECT mogą na przykład być zagnieżdżane, jedna instrukcja SELECT może zawierać kilka sprzężeń, liczba funkcji dozwolonych w wyrażeniach bywa bardzo duża itd.

Argumenty:

Argumenty

| Argument | Opisu |
| --- | --- |
| [](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 to predykat używany, jeśli powtarzające się kombinacje wartości w wybranych polach mają być ładowane tylko raz. |
| [](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 to predykat używany, jeśli powtarzające się rekordy w tabeli źródłowej mają być ładowane tylko raz. |
| fieldlist | fieldlist ::= (\*\| field ) {, field }<br><br>Lista wybieranych pól. Użycie znaku \* jako listy pól oznacza wszystkie pola tabeli.<br><br>fieldlist ::= field {, field }<br><br>Lista pól, rozdzielana przecinkami.<br><br>field ::= ( fieldref \| expression ) [as aliasname ]<br><br>Jako wyrażenie expression można podać np. funkcję liczbową lub funkcję ciągu znaków opartą na jednym polu lub wielu polach. Niektóre zwykle akceptowane operatory i funkcje są następujące: +, -, \*, /, & (konkatenacja ciągu znaków), sum(fieldname), count(fieldname), avg(fieldname)(average), month(fieldname) itp. Więcej informacji na ten temat można znaleźć w dokumentacji sterownika ODBC.<br><br>fieldref ::= [ tablename. ] fieldname<br><br>Argumenty tablename i fieldname to ciągi znaków określające odpowiednio nazwę tabeli i nazwę pola. Jeśli zawierają np. odstępy, muszą być ujęte w proste cudzysłowy podwójne.<br><br>Klauzula as służy do przypisania polu nowej nazwy. |
| from | tablelist ::= table {, table }<br><br>Lista tabel, z których będą wybierane pola.<br><br>table ::= tablename [ [as ] aliasname ]<br><br>Argument tablename może, ale nie musi być ujęty w cudzysłowy.<br><br>[From](https://help.qlik.com/pl-PL/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 to klauzula określająca, czy rekord ma być uwzględniony w selekcji, czy też nie.<br><br>criterion to wyrażenie logiczne, które może niekiedy być bardzo złożone. Akceptowane operatory to między innymi operatory i funkcje liczbowe, =, &lt;&gt; lub #(znak nierówności), &gt;, &gt;=, &lt;, &lt;=, and, or,not, exists,some, all,in oraz nowe instrukcje SELECT. Więcej informacji na ten temat można znaleźć w dokumentacji sterownika ODBC lub dostawcy OLE DB. |
| [](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 to klauzula do agregowania (grupowania) wielu rekordów w jeden. W obrębie jednej grupy wszystkie rekordy dla określonego pola muszą mieć tę samą wartość — w przeciwnym razie pola można używać jedynie z poziomu wyrażenia, np. jako sumy lub średniej. Wyrażenie to może odnosić się do jednego lub wielu pól i jest zdefiniowane w wyrażeniu symbolu pola. |
| [](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 to klauzula używana do kwalifikowania grup, działająca analogicznie do klauzuli where kwalifikującej rekordy. |
| [](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 to klauzula do określania kolejności sortowania tabeli wynikowej generowanej przez instrukcję 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 to kwalifikator określający sprzężenie kilku tabel w jedną. Wszelkie nazwy pól i tabel zawierające odstępy lub znaki diakrytyczne muszą być ujęte w cudzysłowy. W przypadku automatycznego generowania skryptu przez aplikację Qlik Sense używane są znaki cudzysłowu preferowane przez sterownik ODBC lub dostawcę OLE DB z definicji źródła danych podanej w instrukcji Connect. |

Przykład 1:

``SELECT * 
 FROM `Categories`;``

Przykład 2:

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

Przykład 3:

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

Przykład 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`;``

## Dowiedz się więcej

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