Sternklausel (*)

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL Häkchen gesetzt ja Databricks Runtime

Die * (Stern)-Klausel ist eine Kurzform zum Benennen aller referenzierbaren Spalten in der FROM Klausel oder die Spalten und Felder eines bestimmten Tabellenverweises.

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 in dieser Liste nicht 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

  • Name

    Wenn der Name ein Tabellenname ist, werden die Spalten in der angegebenen referenzierbaren Tabelle aufgelistet. Wenn der Name ein Spalten- oder Feldname des Typs STRUCTist, werden die Felder in der angegebenen referenzierbaren Spalte oder dem angegebenen Feld aufgelistet. Wenn kein Name angegeben ist, werden alle Spalten aus allen referenzierbaren Tabellen in der FROM-Klausel aufgelistet.

  • Ausnahmeklausel

    Gilt für:Häkchen ja Databricks SQL Häkchen Databricks Runtime 11.3 LTS und höher

    Schneidet optional Spalten oder Felder aus dem referenzierbaren Satz von Spalten ab, die in der select_star Klausel angegeben sind.

    • Spaltenname

      Eine Spalte, die einer Gruppe von Spalten angehört, auf die Sie verweisen können.

    • field_name

      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 leeres STRUCT-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.

Häufige Fehlerbedingungen

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

-- Cannot expand star for a non-existent table.
> SELECT unknown_table.* FROM VALUES(1) AS t(c1);
  Error: CANNOT_RESOLVE_STAR_EXPAND

-- Overlapping columns in `EXCEPT`.
> SELECT * EXCEPT(c1, c1) FROM VALUES(1, 2) AS t(c1, c2);
  Error: EXCEPT_OVERLAPPING_COLUMNS