Freigeben über


Sternklausel (*)

Gilt für: durch Häkchen mit „Ja“ markiert Databricks SQL Häkchen gesetzt ja 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

  • name

    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: Häkchen ja Databricks SQL Häkchen 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.

    • column_name

      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.

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