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. Voor het gebruik van de SELECT -opdracht is een open gegevensverbinding naar de bron vereist.
[ (Inner | Left | Right | Full) jointablenameonfieldref = 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.
InformatieDeze 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.
Argumenten:
Argumenten
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.
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.
Voorbeeld 1:
SELECT *
FROM `Categories`;
Voorbeeld 2:
SELECT `Category
ID`, `Category Name` FROM `Categories`;
Voorbeeld 3:
SELECT `Order
ID`, `Product ID`,
`Unit Price`
* Quantity * (1-Discount) as NetSales
FROM `Order
Details`;
Voorbeeld 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`
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!