Wyrażenie SQL
Dotyczy: wyboru SQL usługi Databricks
Databricks Runtime
Wyrażenie to formuła, która oblicza wynik na podstawie literałów lub odwołań do kolumn, pól lub zmiennych przy użyciu funkcji lub operatorów.
Składnia
{ literal |
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 )
Nawiasy w nawiasach expr [ expr ]
są rzeczywistymi nawiasami kwadratowymi i nie wskazują opcjonalnej składni.
Parametry
Literału
Literał typu opisany w artykule Typy danych.
column_reference
Odwołanie do kolumny w aliasie tabeli lub kolumny.
field_reference
Odwołanie do pola w typie struktury.
-
Odwołanie do parametru funkcji zdefiniowanej przez użytkownika SQL z treścią funkcji. Odwołanie może używać niekwalifikowanej nazwy parametru lub kwalifikować nazwę z nazwą funkcji. Parametry stanowią najbardziej zewnętrzny zakres podczas rozpoznawania identyfikatorów.
-
Wyrażenie rzutowania argumentu na inny typ.
-
Wyrażenie umożliwiające ocenę warunkową.
Expr
Samo wyrażenie, które jest łączone z elementem
operator
, lub jest argumentem funkcji.-
Operator jednoargumentowy lub binarny.
-
Odwołanie do elementu tablicy lub klucza mapy.
-
Wyrażenie wywołujące wbudowaną lub zdefiniowaną przez użytkownika funkcję.
Strony dla każdej wbudowanej funkcji i operatora opisują typy danych, których oczekuje ich parametry. Usługa Azure Databricks wykonuje niejawne rzutowanie do oczekiwanych typów przy użyciu reguł typów danych SQL. Jeśli operator lub funkcja jest nieprawidłowa dla podanego argumentu, usługa Azure Databricks zgłasza błąd. Funkcje również dokumentują, które parametry są obowiązkowe lub opcjonalne.
Podczas wywoływania funkcji zdefiniowanej przez użytkownika SQL można pominąć argumenty dla parametrów końcowych, jeśli parametry mają zdefiniowane wartości domyślne.
( wyrażenie )
Wymuszony pierwszeństwo, które zastępuje pierwszeństwo operatora.
( wyrażenie, wyrażenie [, ... ] )
struct
Tworzy co najmniej dwa pola. Ta notacja jest synonimem funkcji struktury.-
( zapytanie )
Wyrażenie oparte na zapytaniu, które musi zwracać jedną kolumnę i co najwyżej jeden wiersz.
Strony dla każdej funkcji i operatora opisują typy danych, których oczekuje ich parametry. Usługa Azure Databricks wykonuje niejawne rzutowanie do oczekiwanych typów przy użyciu reguł typów danych SQL. Jeśli operator lub funkcja jest nieprawidłowa dla podanego argumentu, usługa Azure Databricks zgłasza błąd.
Aby uzyskać więcej informacji na temat rozpoznawania nazw , zobacz Rozpoznawanie kolumn, pól i parametrów .
Wyrażenie stałe
Wyrażenie oparte tylko na literałach lub funkcjach deterministycznych bez argumentów. Usługa Azure Databricks może wykonać wyrażenie i użyć wynikowej stałej, w której zwykle wymagane są literały.
Wyrażenie logiczne
Wyrażenie z typem BOOLEAN
wyniku . Wyrażenie logiczne jest również czasami określane jako warunek lub predykat.
Podzapytywanie skalarne
Wyrażenie formularza ( query )
. Zapytanie musi zwrócić tabelę zawierającą jedną kolumnę i co najwyżej jeden wiersz.
Jeśli zapytanie nie zwraca żadnego wiersza, wynikiem jest NULL
.
Jeśli zapytanie zwraca więcej niż jeden wiersz, usługa Azure Databricks zwraca błąd.
W przeciwnym razie wynikiem jest wartość zwracana przez zapytanie.
Wyrażenie proste
Wyrażenie, które nie zawiera query
elementu , takiego jak podzapytywanie skalarne lub EXISTS
predykat.
Przykłady
> 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}}