SQL 運算式
適用於:Databricks SQL Databricks Runtime
表達式是一種公式,會使用函數或運算符,根據常值或 columns、欄位或變數的參考來計算結果。
語法
{ literal |
named_parameter_marker |
unnamed_parameter_marker |
column_reference |
field_reference |
parameter_reference |
CAST expression |
CASE expression |
COLLATE expression |
expr operator expr |
operator expr |
expr [ expr ] |
function_invocation |
( expr ) |
( expr, expr [, ... ] ) |
scalar_subquery }
scalar_subquery
( query )
中的 expr [ expr ]
括弧是實際的方括弧,但不表示選擇性語法。
Parameters
literal
數據類型中所述 之型別的常值。
-
提交 SQL 語句之 API 所提供值的具名和具型別佔位符。
-
提交 SQL 語句之 API 提供之值的未命名和具型別佔位元。
column_reference
table 或 column 別名中 column 的參考。
field_reference
STRUCT 型別中欄位的參考。
-
從中參考 SQL 使用者定義函式的參數,以及函式主體。 參考可能會使用參數的不限定名稱,或 qualify 具有函式名稱的名稱。 Parameters 構成解析標識符的最外層範圍。
-
將自變數轉換成不同類型的表達式。
-
允許條件式評估的表達式。
-
將明確的排序方式附加到字符串運算的運算式中。
expr
與 結合
operator
的表達式本身,或是函式的自變數。-
一元或二元運算符。
-
數位專案或對應索引鍵的參考。
-
內建或使用者定義函式的調用。
如需詳細資訊,請參閱function_invocation。
(expr)
覆寫運算符優先順序的 強制執行優先順序。
(expr, expr [, ... ] )
struct
建立兩個或多個字段的 。 這個表示法與結構函式同義。-
( 查詢 )
必須根據查詢傳回一個單一的 column 並且最多只能有一行的表達式。
每個 函式和運算符的頁面 描述其 parameters 預期的數據類型。 Azure Databricks 會使用 SQL 數據類型規則,對預期的類型執行隱含轉換。 如果提供的自變數運算符或函式無效,Azure Databricks 就會引發錯誤。
如需名稱解析的詳細資訊,請參閱 Column、欄位、參數和變數解析。
常數表達式
表達式,僅以不含自變數的常值或決定性函式為基礎。 Azure Databricks 可以執行運算式,並使用生成的常數 where,在通常需要字面值的情況下。
布林運算式
結果型別為的 BOOLEAN
表達式。 布爾表達式有時 也稱為條件 或 述詞。
純量子查詢
表單 ( query )
的表達式。 查詢必須傳回一個 table,其中包含一個 column 並且最多有一行。
如果查詢沒有傳回任何資料列,則結果為 NULL
。
如果查詢傳回一個以上的數據列,Azure Databricks 會傳回錯誤。
否則,結果是查詢所傳回的值。
簡單表達式
不包含 query
的表達式,例如純量子查詢或 EXISTS
述詞。
範例
> SELECT 1;
1
> SELECT (SELECT 1) + 1;
2
> SELECT 1 + 1;
2
> SELECT 2 * (1 + 2);
6
> SELECT 2 * 1 + 2;
4
> SELECT substr('Spark', 1, 2);
Sp
> SELECT c1 + c2 FROM VALUES(1, 2) AS t(c1, c2);
3
> SELECT a[1] FROM VALUES(array(10, 20)) AS T(a);
20
> SELECT true;
true
> SELECT (c1, (c2, c3)) FROM VALUES(1, 2, 3) AS T(c1, c2, c3);
{"c1":1,"col2":{"c2":2,"c3":3}}