Die Auswahl von Feldern aus einer ODBC-Datenquelle oder aus einem OLE DB-Provider erfolgt über die gewöhnlichen SQL-SELECT-Befehle. Allerdings hängt die Akzeptanz von SELECT-Befehlen vom verwendeten ODBC-Treiber oder OLE DB-Provider ab.
[ (Inner | Left | Right | Full) jointablenameonfieldref = fieldref ]
Ferner können mehrere SELECT-Befehle manchmal zu einem zusammengefasst werden. Dies geschieht durch den Operator union:
selectstatement Union selectstatement
Der SELECT-Befehl wird vom ODBC-Treiber oder OLE DB-Provider interpretiert, deshalb kann es je nach Leistungsfähigkeit des ODBC-Treibers oder OLE DB-Providers gelegentlich Abweichungen von der allgemeinen SQL-Syntax geben:
as wird manchmal nicht akzeptiert, d. h. aliasname muss direkt nach fieldname stehen.
as ist manchmal zwingend notwendig, wenn ein aliasname verwendet wird.
distinct, as,where, group by, order by oder union werden manchmal nicht unterstützt.
Einige ODBC-Treiber akzeptieren nicht alle oben genannten Anführungszeichen.
InformationshinweisDer SELECT-Befehl in SQL kann hier nicht bis in alle Einzelheiten beschrieben werden. Beispielsweise können SELECT-Befehle verschachtelt werden; es können innerhalb eines SELECT-Befehls Verknüpfungen vorgenommen werden; es gibt noch sehr viele weitere Funktionen, die in Formeln verwendet werden können, usw.
Argumente:
Select-Argumente
Argument
Beschreibung
distinct
distinct ist ein Prädikat, das verwendet wird, wenn doppelte Kombinationen von Werten in den ausgewählten Feldern nur einmal geladen werden sollen.
distinctrow
distinctrow ist ein Prädikat, mit dem doppelte Datensätze in der Quelltabelle nur einmal geladen werden.
fieldlist
fieldlist ::= (*| field ) {, field }
Liste der zu ladenden Felder. * in der Felderliste bedeutet alle Felder in der Tabelle.
fieldlist ::= field {, field }
Eine Auflistung eines oder mehrerer Felder, durch Kommas voneinander getrennt.
field ::= ( fieldref | expression ) [as aliasname ]
Die Formel kann eine numerische Funktion oder Stringfunktion sein, die sich auf ein oder mehrere andere Felder bezieht. Einige der für gewöhnlich akzeptierten Operatoren und Funktionen lauten: +, -, *, /, & (String-Zusammenfassung), sum(fieldname), count(fieldname), avg(fieldname)(average), month(fieldname), usw. Weitere Informationen finden Sie in der Dokumentation des ODBC-Treibers.
fieldref ::= [ tablename. ] fieldname
Der tablename und der fieldname sind Textstrings, die ihrem Namen entsprechen. Sie müssen von geraden doppelten Anführungszeichen eingeschlossen sein, wenn sie z. B. Leerzeichen enthalten.
Die Bedingung as weist dem Feld einen neuen Namen zu.
from
tablelist ::= table {, table }
Eine Liste der Tabellen, aus denen Felder geladen werden sollen.
table ::= tablename [ [as ] aliasname ]
Der tablename kann, muss aber nicht in Anführungszeichen stehen.
where wird verwendet, um anhand eines Kriteriums zu prüfen, ob der Datensatz geladen wird oder nicht.
criterion ist eine logische Formel, die mitunter sehr komplex sein kann. Folgende Operatoren sind normalerweise möglich: numerische Operatoren und Funktionen, =, <> oder #(ungleich), >, >=, <, <=, and, or,not, exists,some, all,in oder auch neue SELECT-Befehle. Weitere Informationen finden Sie in der Dokumentation des ODBC-Treibers oder OLE DB-Providers.
group by
Der Zusatz group by dient dazu, Datensätze zu aggregieren (gruppieren). Innerhalb einer Gruppe müssen alle Datensätze in einem bestimmten Feld denselben Wert haben. Anderenfalls kann das Feld lediglich innerhalb von Formeln, z. B. als Summe oder Durchschnitt, benutzt werden.
having
Der Zusatz having hat für Gruppen dieselbe Bedeutung wie der Zusatz where für Datensätze.
order by
Mit order by können Sie eine Sortierfolge für die durch den SELECT-Befehl entstehende Tabelle festlegen.
join
join wird benutzt, um mehrere Tabellen zu einer zusammenzuschließen. Feld- und Tabellennamen müssen in Anführungszeichen stehen, wenn sie Leerzeichen oder Buchstaben aus nationalen Zeichensätzen enthalten. Wenn das Skript automatisch von QlikView erstellt wird, werden stets Anführungszeichen verwendet, die auf den ODBC-Treiber oder den OLE DB-Provider abgestimmt sind, der in der Datenquellen-Definition der Datenquelle im Befehl Connect angegeben ist.
Beispiel 1:
SELECT *
FROM `Categories`;
Beispiel 2:
SELECT `Category
ID`, `Category Name` FROM `Categories`;
Beispiel 3:
SELECT `Order
ID`, `Product ID`,
`Unit Price`
* Quantity * (1-Discount) as NetSales
FROM `Order
Details`;
Beispiel 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`
Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!
Nehmen Sie am Analyse-Modernisierungsprogramm teil
Modernisieren Sie mit dem Analyse-Modernisierungsprogramm, ohne Ihre wertvollen QlikView-Apps zu gefährden. Klicken Sie hier für weitere Informationen oder kontaktieren Sie uns: ampquestions@qlik.com