Freigeben über


SELECT-Klausel

Gilt für:als Databricks SQL als Databricks Runtime

Sammelt die Spalten, die von der Unterabfrage zurückgegeben werden sollen, einschließlich der Ausführung von Ausdrücken, Aggregationen und Deduplizierung.

Syntax

SELECT [ hints ] [ ALL | DISTINCT ] { named_expression | star_clause } [, ...]

Parameter

  • Hinweise

    Hinweise helfen dem Azure Databricks-Optimierer, bessere Planungsentscheidungen zu treffen. Azure Databricks unterstützt Hinweise, die die Auswahl von Verknüpfungsstrategien und die Neupartitionierung der Daten beeinflussen.

  • ALLE

    Wählen Sie alle übereinstimmenden Zeilen aus den Tabellenbezügen aus. Standardmäßig aktiviert.

  • EINDEUTIG

    Wählen Sie alle übereinstimmenden Zeilen aus den Tabellenbezügen aus, nachdem Duplikate in Ergebnissen entfernt wurden.

  • named_expression

    Ein Ausdruck mit einem optionalen zugewiesenen Namen.

    • Ausdruck

      Eine Kombination aus einer oder mehreren Werten, Operatoren und SQL-Funktionen, die zu einem Wert ausgewertet werden.

    • column_alias

      Ein Spaltenbezeichner, der optional das Ergebnis eines Ausdrucks benennt. Wenn column_alias nicht angegeben ist, leitet Databricks SQL ein solches Element ab.

  • star_clause

    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.

Beispiele

-- select all referencable columns from all tables
> SELECT * FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
  1   2   3   4

-- select all referencable columns from one table
> SELECT t2.* FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
  3   4

-- select all referencable columns from all tables except t2.c4
> SELECT * EXCEPT(c4) FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
  1   2   3

-- select all referencable columns from a table, except a nested field.
> SELECT * EXCEPT(c2.b) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
  1  { "a" : 2 }

-- Removing all fields results in an empty struct
> SELECT * EXCEPT(c2.b, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
  1  { }

-- Overlapping names result in an error
> SELECT * EXCEPT(c2, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
  Error: EXCEPT_OVERLAPPING_COLUMNS