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:
-
DISTINCTfiltert 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 -
ALList die Vorgabe: es gibt alle Zeilen zurück, einschließlich der Duplikate.ALLwird 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
DISTINCTverwendet wird