<derived column list>
als in der TabelleValues
und Select
: FROM (VALUES | SELECT …) t(c1, c2)
Select
: FROM (SELECT …) t(c1, c2)
Values
, dann aber verpflichtend: FROM (VALUES …) t(c1, c2)
Neben Tabellen können in den From
- und Join
-Klauseln auch Spalten umbenannt werden.
SELECT …
FROM tbl_a [AS] a(a1, a2, …)
JOIN tbl_b [AS] b(b1, b2, …)
Das wird üblicherweise benutzt, um Spalten zu benennen, die keinen Benutzerdefinierten Namen haben – wie sie zum Beispiel von values
und unnest
erzeugt werden.
SELECT b, a
FROM (VALUES (1, 'a')
) t(a, b)
Der SQL-Standard verlangt, dass man mit dieser Syntax allen Spalten ein neuer Namen zuweist.
Manche Systeme akzeptieren es, wenn man weniger Spaltennamen angibt, als die Tabelle hat, sodass man nur den ersten Spalten einen neuen Namen zuweist.
E051-05, “Select list items can be renamed”
E051-09, “Rename columns in the FROM clause”, ist eine Pflichtfunktion von ISO/IEC 9075-2:2023. Die Funktionalität war bereits in SQL:92 (intermediate) vorhanden.0 Mit SQL:1999 wurde es zur Pflichtfunktion.
20 Jahre SQL-Evolution kann man nicht an einem Tag nachholen. Abonniere den Newsletter via E-Mail, Bluesky oder RSS, um sukzessive aufzuholen und modern-sql.com am Radar zu behalten.
Markus verwandelt veraltetes SQL-92-Wissen in solides und zeitgemäßes SQL-Know-how
ISO/IEC 9075:1992 §6.3 LR 2c