Die From
- und Join
-Klauseln erlauben es der entsprechenden Tabelle und deren Spalten einen neuen Namen zuzuweisen. Beim Tabellennamen nutzt man das häufig, damit man in der Anweisung kürzere Namen verwenden kann. Bei den Spaltennamen braucht man diese Funktionalität hauptsächlich um Spalten einen Namen zuzuweisen, die noch keinen Benutzerdefinierten Namen haben.
Die Syntax sehr einfach: Der Datenquelle in einer From
- oder Join
-Klausel folgt das optionale Schlüsselwort As
sowie der Name, unter dem diese Datenquelle in dieser Anweisung fortan bekannt sein soll. Danach folgt, optional in Klammern, die Liste der neuen Spaltennamen.
FROM … [[AS] alias [(<derived column list>)]]
Dabei ersetzen die neuen Namen die alten in den semantisch darauffolgenden Klauseln (on
/using
, where
, group by
, having
, window
, select
).
SELECT b, a
FROM (VALUES (1, 'a')
) t(a, b)
Wenn du diese Seite magst, magst du vielleicht auch …
… meine Newsletter bestellen, gratis Sticker erhalten, mein Buch kaufen oder an einer Schulung teilnehmen.
Anwendungsfälle
Konforme Alternativen
Die With
-Klausel kann ebenfalls Spaltenname auf Basis ihrer Position zuweisen.
WITH t (a, b) AS (
VALUES (1, 'a')
)
SELECT b, a
FROM t
Kompatibilität
- Nur für
Values
undSelect
:FROM (VALUES | SELECT …) t(c1, c2)
- Nur für
Select
:FROM (SELECT …) t(c1, c2)
- Nur für
Values
, dann aber verpflichtend:FROM (VALUES …) t(c1, c2)
- Akzeptiert weniger Spalten in
<derived column list>
als in der Tabelle - Nur am Anfang einer Anweisung: z.B.:
with...insert...select
.
Erweiterungen
Manche Systeme verzichten auf den vom Standard vorgeschriebene Namenszwang in manchen Fällen.
Manche Systeme akzeptieren es, wenn man weniger Spaltennamen angibt, als die Tabelle hat, sodass man nur den ersten Spalten einen neuen Namen zuweist.
Weiterführende Links
- Verwandet Funktionen
E051-05, “Select list items can be renamed”