共用方式為


SELECT 子句

適用於:勾選為 [是] Databricks SQL 勾選為 [是] Databricks Runtime

收集要從子查詢傳回的欄位,包括執行表達式、聚合和去重。

語法

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

參數

  • 提示

    提示可協助 Azure Databricks 優化器做出更佳的規劃決策。 Azure Databricks 支援提示,可影響選擇連接策略和重新分區數據。

  • 所有

    從數據表參考中選取所有相符的數據列。 默認為啟用。

  • DISTINCT

    在移除結果中的重複項目之後,從數據表參考中選取所有相符的數據列。

  • 命名表達式

    具有選擇性指派名稱的表達式。

    • 表示式

      組合包含一個或多個值、運算元和 SQL 函式,其計算結果為一個值。

    • column_alias

      為表達式結果命名的選擇性數據行標識碼。 如果沒有提供 column_alias,Databricks SQL 會衍生一個。

  • star_clause

    用來命名 FROM 子句中所有可參考數據行的速記,或 FROM 子句中特定數據表參考的數據行或字段。

例子

-- 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