Die SELECT
-Spaltenliste
Die Spaltenliste enthält einen oder mehrere durch Kommas getrennte Wertausdrücke.Jeder Ausdruck stellt einen Wert für eine Ausgabespalte bereit.Alternativ kann *
(“Hole Sternchen” oder “Hole alle”) verwendet werden, um für alle Spalten in einer Relation (d.h. einer Tabelle, View oder auswählbaren Stored Procedure) zu stehen.
SELECT [...] [{DISTINCT | ALL}] <select_list> [...] FROM ... <select_list> ::= * | <output_column> [, <output_column> ...] <output_column> ::= <qualifier>.* | <value_expression> [COLLATE collation] [[AS] alias] <value_expression> ::= [<qualifier>.]col_name | [<qualifier>.]selectable_SP_outparm | <literal> | <context-variable> | <function-call> | <single-value-subselect> | <CASE-construct> | any other expression returning a single value of a Firebird data type or NULL <qualifier> ::= a relation name or alias <function-call> ::= <normal_function> | <aggregate_function> | <window_function> <normal_function> ::= !! Siehe auch Eingebaute Skalarfunktionen !! <aggregate_function> ::= !! Siehe auch Aggregatfunktionen !! <window_function> ::= !! Siehe auch Window-Funktionen !!
Argument | Beschreibung |
---|---|
qualifier |
Name der Relation (View, Stored Procedure, abgeleitete Tabelle);oder ein Alias dafür |
collation |
Nur für zeichenartige Spalten: ein vorhandener und für den Zeichensatz der Daten gültiger Kollatierungsname |
alias |
Spalten- oder Feldalias |
col_name |
Name einer Tabellen- oder Ansichtsspalte |
selectable_SP_outparm |
Deklarierter Name eines Ausgabeparameters einer auswählbaren gespeicherten Prozedur |
literal |
Ein Literal |
context-variable |
Kontextvariable |
function-call |
Skalar-, Aggregat- oder Fensterfunktionsausdruck |
single-value-subselect |
Eine Unterabfrage, die einen Skalarwert zurückgibt (Singleton) |
CASE-construct |
CASE-Konstrukt, das Bedingungen für einen Rückgabewert setzt |
Es ist immer gültig, einen Spaltennamen (oder “*
”) mit dem Namen oder Alias der Tabelle, Ansicht oder auswählbaren SP, zu der er gehört, zu qualifizieren, gefolgt von einem Punkt (‘.
’).Beispiel: Beziehungsname.Spaltenname
, Beziehungsname.*
, Alias.Spaltenname
, Alias.*
.Qualifizierend ist erforderlich, wenn der Spaltenname in mehr als einer Relation vorkommt, die an einem Join teilnimmt.Das Qualifizieren von “*
” ist immer obligatorisch, wenn es nicht das einzige Element in der Spaltenliste ist.
Important
|
Aliase verbergen den ursprünglichen Beziehungsnamen: Sobald eine Tabelle, Ansicht oder Prozedur mit einem Alias versehen wurde, kann nur der Alias als Qualifizierer während der gesamten Abfrage verwendet werden.Der Beziehungsname selbst wird nicht mehr verfügbar. |
Der Spaltenliste kann optional eines der Schlüsselwörter DISTINCT
oder ALL
vorangestellt werden:
-
DISTINCT
filtert alle doppelten Zeilen heraus.Das heißt, wenn zwei oder mehr Zeilen in jeder entsprechenden Spalte die gleichen Werte haben, wird nur eine davon in die Ergebnismenge aufgenommen -
ALL
ist die Vorgabe: es gibt alle Zeilen zurück, einschließlich der Duplikate.ALL
wird selten verwendet;es wird zur Einhaltung des SQL-Standards unterstützt.
Eine COLLATE
-Klausel ändert das Aussehen der Spalte als solche nicht.Wenn die angegebene Sortierung jedoch die Groß-/Kleinschreibung oder die Akzentempfindlichkeit der Spalte ändert, kann dies Folgendes beeinflussen:
-
Die Reihenfolge, wenn auch eine
ORDER BY
-Klausel vorhanden ist und diese Spalte betrifft -
Gruppierung, wenn die Spalte Teil einer
GROUP BY
-Klausel ist -
Die abgerufenen Zeilen (und damit die Gesamtzahl der Zeilen in der Ergebnismenge), wenn
DISTINCT
verwendet wird