выражение SQL
Относится к: Databricks SQL
Databricks Runtime
Выражение — это формула, которая вычисляет результат, основанный на литералах или ссылках на столбцы, поля или переменные, с использованием функций или операторов.
Синтаксис
{ 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 ]
представляют собой фактические квадратные скобки и не обозначают необязательный синтаксис.
Параметры
буквальный
Литерал типа, описанного в разделе Типы данных.
-
Именованный и типизированный заполнитель для значения, которое предоставляется API, при отправке SQL-запроса.
маркер_неименованного_параметра
Неименованный и типизированный заполнитель для значения, предоставленного API, отправляющего инструкцию SQL.
ссылка на столбец
Ссылка на столбец в таблице или на псевдоним столбца.
ссылка_на_поле
Ссылка на поле в типе STRUCT.
-
Ссылка на параметр определяемой пользователем функции SQL изнутри тела функции. Ссылка может использовать неполное имя параметра или уточнять имя с помощью имени функции. Параметры составляют самые внешние пределы при определении идентификаторов.
-
Выражение, которое преобразует аргумент к другому типу.
-
Выражение, которое разрешает условное вычисление.
-
Выражение, придающее явное правило сортировки к строковому выражению.
expr
Выражение само по себе, которое объединено с
operator
или является аргументом функции.-
Унарный или бинарный оператор.
-
Ссылка на элемент массива или ключ отображения.
-
Вызов встроенной или пользовательской функции.
См. function_invocation для получения подробной информации.
( expr )
Принудительный приоритет, который переопределяет приоритет оператора.
( expr, expr [, … ] )
Создает
struct
из двух или более полей. Эта нотация является синонимом функции структуры.-
( 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}}