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