Select

Val av fält från en ODBC-datakälla eller en OLE DB-drivrutin görs via vanliga SQL SELECT-satser. Om SELECT-satserna accepteras eller ej beror framför allt på den ODBC-drivrutin eller OLE DB-drivrutin som används.

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 ]

 

Dessutom kan flera SELECT-satser ibland konkateneras till en enda sats med hjälp av en union-operator:

selectstatement Union selectstatement

 

SELECT-satsen tolkas av ODBC-drivrutinen eller OLE DB-leverantören, så avvikelser från den allmänna SQL-syntaxen kan uppstå beroende på funktionerna hos ODBC-drivrutinerna eller OLE DB-leverantören, exempelvis:

  • as är ibland inte tillåtet, dvs. aliasname måste följa omedelbart efter fieldname.
  • as är ibland obligatoriskt om ett aliasname används.
  • distinct, as, where, group by, order by eller union stöds ibland inte.
  • ODBC-drivrutinen saknar ibland stöd för några av de citationstecken som beskrivs ovan.
Observera: Detta är ingen komplett beskrivning av SQL SELECT-satsen! SELECT-satser kan t.ex. kapslas, en SELECT-sats kan innehålla flera join-satser, ibland tillåts ett stort antal funktioner i uttrycken osv.

Arguments:  

Argument Beskrivning
distinct distinct används om duplicerade kombinationer av värden i de valda fälten bara ska läsas in en gång.
distinctrow distinctrow används om duplicerade poster i ursprungstabellen bara ska läsas in en gång.
fieldlist fieldlist ::= (*| field ) {, field }

En lista över de fält som ska väljas. Genom att använda * som fältlista anger man alla fält i tabellen.

fieldlist ::= field {, field }

En lista över ett eller flera kommaavgränsade fält.

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

Uttrycket kan exempelvis vara ett numeriskt uttryck eller en teckensträng från ett eller flera olika fält. Några av de operatorer och funktioner som normalt kan användas: +, -, *, /, & (konkatenering av strängar), sum(fieldname), count(fieldname), avg(fieldname)(average), month(fieldname), osv. Se dokumentationen till ODBC-drivrutinen för mer information.

fieldref ::= [ tablename. ] fieldname

tablename och fieldname är textsträngar som motsvarar det de beskriver. De måste stå inom raka, dubbla citationstecken om de innehåller exempelvis blanktecken.

as-tillägget används för att tilldela fältet ett nytt namn.
from tablelist ::= table {, table }

En lista över de tabeller från vilka fälten ska hämtas.

table ::= tablename [ [as ] aliasname ]

tablename kan sättas inom citationstecken.

From

where where är ett tillägg som används för att tala om huruvida en post ska inkluderas i valet eller inte.

criterion är ett logiskt uttryck, som ibland kan vara mycket komplext. En del av de operatorer som godtas är: numeriska operatorer och funktioner, =, <> eller #(ej lika med), >, >=, <, <=, and, or, not, exists, some, all, in och även nya SELECT-satser. Se dokumentationen till ODBC-drivrutinen eller OLE DB-providern för mer information.

group by group by är en sats som används för att aggregera (gruppera) flera poster till en. Inom en grupp, för ett visst fält, måste alla poster ha samma värde, eller så kan fältet endast förekomma i uttryck i vilka kollektiva egenskaper räknas ut, exempelvis summa eller medelvärde. Uttrycket, som baseras på ett eller flera fält, definieras i fältsymboluttrycket.
having having är en sats som används för att kvalificera grupper på ett liknande sätt som satsen where används för att kvalificera poster.
order by order by är en sats som specificerar sorteringsordningen för den tabell som SELECT-satsen resulterar i.
join join är en kvalificerare som talar om att flera tabeller ska länkas samman till en enda. Fältnamn och tabellnamn måste sättas inom citationstecken om de innehåller blanktecken eller å,ä,ö. Om skriptet genereras automatiskt av Qlik Sense, används vanligen de citationstecken som ODBC-drivrutinen eller OLE DB-providern specificerar i datakällans definition av datakällan i Connect-satsen.

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:

 

Hjälpte den här informationen?

Tack för att du berättar det här. Är det något du vill säga om det här avsnittet?

Varför var informationen inte till hjälp och hur kan vi förbättra den?