共用方式為


* (star) 子句

適用於: 核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

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

數據行或欄位的清單會依資料表參考的順序和每個資料表參考內的數據行順序排序。 如果是欄位,則會依結構內的欄位順序來排序。

_metadata 資料行不包含此清單。 您必須明確參考它。

在 Databricks Runtime 15.0 之前,star (*) 子句只能在清單中使用 SELECT

語法

star_clause
   [ name . ] * [ except_clause ]

except_clause
   EXCEPT ( { column_name | field_name } [, ...] )

參數

  • name

    如果 name 是資料表名稱,請列出指定之可參考資料表中的數據行。 如果 name 是 STRUCT 類型的數據行或功能變數名稱,請列出指定可參考資料行或欄位中的欄位。 如果沒有,則列出FROM子句中所有可參考數據表中的所有數據行。

  • except_clause

    適用於:核取記號為「是」 Databricks SQL 核取記號為「是」 Databricks Runtime 11.3 LTS 和更新版本

    選擇性地從 子句中 select_star 識別的可參考數據行集剪除數據行或欄位。

    • column_name

      屬於您可以參考之資料行集的數據行。

    • field_name

      您可以參考之資料行集合中欄位的參考。 如果您從 STRUCT排除所有欄位,則結果為空 STRUCT的 。

    每個名稱都必須參考一組您可以參考的數據行或其欄位中包含的數據行。 否則,Databricks SQL 會 引發UNRESOLVED_COLUMN 錯誤。 如果名稱重疊或不是唯一 的,Databricks SQL 會引發EXCEPT_OVERLAPPING_COLUMNS 錯誤。

範例

– 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