Sternklausel (*)
Gilt für: Databricks SQL Databricks Runtime
Eine Abkürzung, um alle referenzierbaren Spalten in der FROM
-Klausel oder die Spalten oder Felder eines bestimmten Tabellenverweises in der FROM
-Klausel zu benennen.
Die Liste der Spalten oder Felder wird nach der Reihenfolge der Tabellenverweise und der Spalten innerhalb jedes Tabellenverweises sortiert. Bei Feldern wird sie nach der Reihenfolge der Felder innerhalb der Struktur sortiert.
Die _metadata
-Spalte ist nicht in dieser Liste enthalten. Sie müssen ausdrücklich auf sie verweisen.
Vor Databricks Runtime 15.0 kann die Sternklausel (*
) nur in der SELECT
-Liste verwendet werden.
Syntax
star_clause
[ name . ] * [ except_clause ]
except_clause
EXCEPT ( { column_name | field_name } [, ...] )
Parameter
-
Wenn der Name ein Tabellenname ist, werden die Spalten in der angegebenen referenzierbaren Tabelle aufgelistet. Wenn es sich bei dem Namen um einen Spalten- oder Feldnamen vom Typ STRUCT handelt, werden die Felder in der angegebenen referenzierbaren Spalte oder dem angegebenen referenzierbaren Feld aufgelistet. Wenn kein Name angegeben ist, werden alle Spalten aus allen referenzierbaren Tabellen in der FROM-Klausel aufgelistet.
except_clause
Gilt für: Databricks SQL Databricks Runtime 11.3 LTS und höher
Löscht optional Spalten oder Felder aus der referenzierbaren Gruppe von Spalten, die in der Klausel
select_star
angegeben sind.-
Eine Spalte, die einer Gruppe von Spalten angehört, auf die Sie verweisen können.
-
Ein Verweis auf ein Feld in einer Spalte der Gruppe von Spalten, auf die Sie verweisen können. Wenn Sie alle Felder aus
STRUCT
ausschließen, ist das Ergebnis ein leeresSTRUCT
-Element.
Jeder Name muss auf eine Spalte aus der Gruppe von Spalten, auf die Sie verweisen können, oder aus deren Feldern verweisen. Andernfalls wird von Databricks SQL ein Fehler vom Typ UNRESOLVED_COLUMN ausgelöst. Wenn sich Namen überschneiden oder nicht eindeutig sind, wird von Databricks SQL ein Fehler vom Typ EXCEPT_OVERLAPPING_COLUMNS ausgelöst.
-
Beispiele
– Return all columns in the FROM clause
> SELECT * FROM VALUES(1, 2) AS TA(c1, c2), VALUES(‘a’, b’) AS TB(ca, cb);
1 2 a b
– Return all columns from TA
> SELECT TA.* FROM VALUES(1, 2) AS TA(c1, c2), VALUES(‘a’, b’) AS TB(ca, cb);
1 2
– Return all columns except TA.c1 and TB.cb
> SELECT * EXCEPT (c1, cb) FROM VALUES(1, 2) AS TA(c1, c2), VALUES(‘a’, b’) AS TB(ca, cb);
2 a
– Return all columns, but strip the field x from the struct.
> SELECT TA.* EXCEPT (c1.x) FROM VALUES(named_struct(‘x’, x, ‘y’, ‘y’), 2) AS (c1, c2), VALUES(‘a’, b’) AS TB(ca, cb);
{ y } 2 a b
-- Return all fields in c1.
> SELECT c1.* FROM VALUES(named_struct(‘x’, x, ‘y’, ‘y’), 2) AS (c1, c2), VALUES(‘a’, b’) AS TB(ca, cb);
x y
– Return the first not-NULL column in TA
> SELECT coalesce(TA.*) FROM VALUES(1, 2) AS TA(c1, c2), VALUES(‘a’, b’) AS TB(ca, cb);
1