共用方式為


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

    數據類型中所述 之型別的常值。

  • named_parameter_marker

    提交 SQL 語句之 API 所提供值的具名和具型別佔位符。

  • unnamed_parameter_marker

    提交 SQL 語句之 API 提供之值的未命名和具型別佔位元。

  • column_reference

    table 或 column 別名中 column 的參考。

  • field_reference

    STRUCT 型別中欄位的參考。

  • parameter_reference

    從中參考 SQL 使用者定義函式的參數,以及函式主體。 參考可能會使用參數的不限定名稱,或 qualify 具有函式名稱的名稱。 Parameters 構成解析標識符的最外層範圍。

  • CAST 表達式

    將自變數轉換成不同類型的表達式。

  • CASE 表達式

    允許條件式評估的表達式。

  • COLLATE 運算式

    將明確的排序方式附加到字符串運算的運算式中。

  • expr

    與 結合 operator的表達式本身,或是函式的自變數。

  • 運算子

    一元或二元運算符。

  • expr [ expr ]

    數位專案或對應索引鍵的參考。

  • function_invocation

    內建或使用者定義函式的調用。

    如需詳細資訊,請參閱function_invocation。

  • (expr)

    覆寫運算符優先順序的 強制執行優先順序

  • (expr, expr [, ... ] )

    struct建立兩個或多個字段的 。 這個表示法與結構函式同義

  • scalar_subquery

    • 查詢

      必須根據查詢傳回一個單一的 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}}