SELECT 子句
適用於: Databricks SQL
Databricks Runtime
收集要從子查詢傳回的欄位,包括執行表達式、聚合和去重。
語法
SELECT [ hints ] [ ALL | DISTINCT ] { named_expression | star_clause } [, ...]
參數
-
提示可協助 Azure Databricks 優化器做出更佳的規劃決策。 Azure Databricks 支援提示,可影響選擇連接策略和重新分區數據。
所有
從數據表參考中選取所有相符的數據列。 默認為啟用。
DISTINCT
在移除結果中的重複項目之後,從數據表參考中選取所有相符的數據列。
命名表達式
具有選擇性指派名稱的表達式。
-
組合包含一個或多個值、運算元和 SQL 函式,其計算結果為一個值。
-
為表達式結果命名的選擇性數據行標識碼。 如果沒有提供
column_alias
,Databricks SQL 會衍生一個。
-
-
用來命名
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