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.
[ (Inner | Left | Right | Full) jointablenameonfieldref = 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.
Anteckning om informationDetta ä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.
Argument:
Select-argument
Argument
Beskrivning
distinct
distinct används om identiska kombinationer av värden i de valda fälten bara ska läsas in en gång.
distinctrow
distinctrow används om identiska 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: +, -, *, /, & (strängkonkatenering), 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.
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 QlikView, används vanligen de citationstecken som ODBC-drivrutinen eller OLE DB-providern specificerar i datakällans definition av datakällan iConnect-satsen.
Exempel 1:
SELECT *
FROM `Categories`;
Exempel 2:
SELECT `Category
ID`, `Category Name` FROM `Categories`;
Exempel 3:
SELECT `Order
ID`, `Product ID`,
`Unit Price`
* Quantity * (1-Discount) as NetSales
FROM `Order
Details`;
Exempel 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`
Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!
Modernisera utan att kompromissa med dina värdefulla QlikView-appar med programmet för analysmodernisering. Klicka här för mer information eller ta kontakt: ampquestions@qlik.com