выражение SQL

Область применения:check marked yes Databricks SQL check marked yes Databricks Runtime

Выражение  это формула, которая вычисляет результат на основе литералов или ссылок на столбцы, поля или переменные, используя функции или операторы.

Синтаксис

{ literal |
  named_parameter_marker |
  unnamed_parameter_marker |
  column_reference |
  field_reference |
  parameter_reference |
  CAST expression |
  CASE expression |
  expr operator expr |
  operator expr |
  expr [ expr ] |
  function_invocation |
  ( expr ) |
  ( expr, expr [, ... ] ) |
  scalar_subquery }

scalar_subquery
  ( query )

Квадратные скобки в expr [ expr ] представляют собой фактические квадратные скобки и не обозначают необязательный синтаксис.

Параметры

  • literal

    Литерал типа, описанного в статье Типы данных.

  • named_parameter_marker

    Именованный и типизированный заполнитель для значения, предоставленного API, отправляющего инструкцию SQL.

  • unnamed_parameter_marker

    Неименованный и типизированный заполнитель для значения, предоставленного API, отправляющего инструкцию SQL.

  • column_reference

    Ссылка на столбец в псевдониме таблицы или столбца.

  • field_reference

    Ссылка на поле в типе STRUCT.

  • parameter_reference

    Ссылка на параметр определяемой пользователем функции SQL из тела функции. Ссылка может использовать неполное имя параметра или уточнять имя с помощью имени функции. Параметры составляют самую внешнюю область при разрешении идентификаторов.

  • Выражение CAST

    Выражение, которое приводит аргумент к другому типу.

  • Выражение CASE

    Выражение, которое разрешает условное вычисление.

  • expr

    Само выражение, которое объединяется с operator или является аргументом функции.

  • operator

    Унарный или бинарный оператор.

  • expr [ expr ]

    Ссылка на элемент массива или ключ сопоставления.

  • function_invocation

    Вызов встроенной или пользовательской функции.

    Дополнительные сведения см . в function_invocation .

  • ( expr )

    Принудительный приоритет, который переопределяет приоритет оператора.

  • ( expr, expr [, … ] )

    Создает struct из двух или более полей. Эта нотация является синонимом функции структуры.

  • scalar_subquery:

    • ( query )

      Выражение, основанное на запросе, которое должно возвращать один столбец и не более одной строки.

На страницах для каждой функции и оператора описываются ожидаемые типы данных. Azure Databricks выполняет неявное приведение к ожидаемым типам с помощью правил типа данных SQL. Если оператор или функция недопустимы для предоставленного аргумента, Azure Databricks вызывает ошибку.

Дополнительные сведения о разрешении имен см. в разделе "Столбец", "Поле", "Параметр" и "Разрешение переменных".

Константное выражение

Выражение, основанное только на литералах или детерминированных функциях без аргументов. Azure Databricks может выполнить выражение и использовать результирующая константу, где обычно требуются литералы.

логическое выражение

Выражение с типом результата BOOLEAN. Логическое выражение также иногда называют условием или предикатом.

Скалярный вложенный запрос

Выражение в формате ( query ). Запрос должен возвращать таблицу, которая содержит один столбец и не более одной строки.

Если запрос не возвращает ни одной строки, результат равен 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}}