* (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 是 STRUCT 類型的數據行或功能變數名稱,請列出指定可參考資料行或欄位中的欄位。 如果沒有,則列出FROM子句中所有可參考數據表中的所有數據行。
except_clause
適用於: Databricks SQL Databricks Runtime 11.3 LTS 和更新版本
選擇性地從 子句中
select_star
識別的可參考數據行集剪除數據行或欄位。-
屬於您可以參考之資料行集的數據行。
-
您可以參考之資料行集合中欄位的參考。 如果您從
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