Select

U selecteert velden uit een ODBC-gegevensbron of van een OLE DB-provider met de standaard SELECT-opdrachten van SQL. Of de SELECT-opdrachten worden geaccepteerd, hangt af van het gebruikte ODBC-stuurprogramma of de gebruikte OLE DB-provider.

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 ]

 

Verder kunnen diverse SELECT-instructies soms tot één instructie worden samengevoegd door middel van de operator union:

selectstatement Union selectstatement

 

Omdat de SELECT-opdracht wordt geïnterpreteerd door het ODBC-stuurprogramma of de OLE DB-provider, zijn er soms afwijkingen van de algemene SQL-syntaxis, afhankelijk van de mogelijkheden van de ODBC-stuurprogramma's of OLE DB-provider, bijvoorbeeld:

  • as is niet altijd toegestaan, aliasname moet dan direct achter fieldname worden geplaatst.
  • Soms is as juist verplicht bij het gebruik van aliasname.
  • distinct, as, where, group by, order by of union worden soms niet ondersteund.
  • Het ODBC-stuurprogramma accepteert niet altijd alle verschillende soorten aanhalingstekens.
Opmerking: Deze beschrijving van de SQL-opdracht SELECT is niet volledig! SELECT-opdrachten kunnen bijvoorbeeld worden genest of worden samengevoegd tot een enkele SELECT-opdracht, en het aantal toegestane functies in een uitdrukking is soms heel groot.

Arguments:  

Argument Beschrijving
distinct distinct wordt gebruikt om waarden die dubbel voorkomen in de geselecteerde velden, maar één keer te laden.
distinctrow distinctrow wordt gebruikt om records die dubbel voorkomen in de brontabel, maar één keer te laden.
fieldlist fieldlist ::= (*| field ) {, field }

Een lijst van de te selecteren velden. Gebruik een sterretje * als veldlijst voor alle velden in de tabel.

fieldlist ::= field {, field }

Een lijst van een of meer velden, gescheiden door komma's.

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

De uitdrukking kan bijvoorbeeld een numerieke of tekenreeksfunctie zijn, gebaseerd op een of meer andere velden. Enkele van de meestal geaccepteerde operatoren en functies zijn: +, -, *, /, & (aaneengeschakelde tekenreeks), sum(fieldname), count(fieldname), avg(fieldname)(average), month(fieldname), etc. Zie de documentatie van het ODBC-stuurprogramma voor meer informatie.

fieldref ::= [ tablename. ] fieldname

tablenameen fieldname zijn teksttekenreeksen voor de tabelnaam en veldnaam. Ze moeten tussen rechte dubbele aanhalingstekens worden geplaatst als ze bijvoorbeeld spaties bevatten.

De as-clausule wordt gebruikt om een nieuwe naam toe te wijzen aan het veld.
from tablelist ::= table {, table }

De lijst van tabellen waaruit de velden worden geselecteerd.

table ::= tablename [ [as ] aliasname ]

tablename mag tussen aanhalingstekens worden geplaatst, maar dat hoeft niet.

From

where where is een clausule die wordt gebruikt om aan te geven of een record wel of niet in de selectie moet worden opgenomen.

criterion is een logische uitdrukking, die zeer complex kan zijn. Enkele geaccepteerde operatoren zijn: numerieke operatoren en functies, =, <> of #(niet gelijk), >, >=, <, <=, and, or, not, exists, some, all, in en ook nieuwe SELECT-instructies. Zie de documentatie van het ODBC-stuurprogramma of de OLE DB-provider voor meer informatie.

group by Met group by-clausule worden diverse records geaggregeerd (gegroepeerd) tot een enkele record. Binnen een groep moeten alle records voor een bepaald veld dezelfde waarde hebben, anders kan het veld alleen binnen een uitdrukking worden gebruikt, bijvoorbeeld als som of gemiddelde. De op een of meer velden gebaseerde uitdrukking wordt gedefinieerd in de uitdrukking van het veldsymbool.
having Met having worden groepen gekwalificeerd, net zoals bij de where-clausule records worden gekwalificeerd.
order by order by is een clausule die de sorteervolgorde aangeeft van de tabel die door de SELECT-opdracht ontstaat.
join join verenigt verschillende tabellen tot één tabel. Veld- en tabelnamen moeten tussen aanhalingstekens worden geplaatst als ze spaties of letters uit de nationale tekenset bevatten. Als het script automatisch door Qlik Sense wordt gegenereerd, worden de aanhalingstekens gebruikt die worden geaccepteerd door het ODBC-stuurprogramma dat of de OLE DB-provider die is opgegeven in de gegevensbrondefinitie van de opdracht 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: