Select

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.

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 ]

 

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.
Hinweis: Der 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 weitere Funktionen, die in Formeln verwendet werden können, usw.

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. Folgende Operatoren und Funktionen sind normalerweise möglich: +, -, *, /, & (String-Verkettung),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.

Siehe: From

where where wird benutzt, 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`

group by `Order Details`.`Order ID`;

Siehe auch: