Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
Databricks SQL
Databricks Runtime 14.1 i nowsze
Tworzy prywatną, tymczasową zmienną sesji, do której można odwoływać się wszędzie tam, gdzie można używać wyrażenia stałego . Zmienne można również używać w połączeniu z klauzulą IDENTIFIER, aby parametryzować identyfikatory w instrukcjach SQL.
Zmienne są modyfikowane przy użyciu instrukcji SET VARIABLE.
Nie można odwoływać się do zmiennych tymczasowych w:
- ograniczenie sprawdzania
- wygenerowana kolumna
- wyrażenie domyślne
- treść przechowywanej funkcji zdefiniowanej przez użytkownika SQL
- treść utrwalonego widoku
Zmienne tymczasowe są również nazywane zmiennymi sesji .
Składnia
DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name [, ...]
[ data_type ] [ { DEFAULT | = } default_expression ]
Przed wersją 17.2 środowiska Databricks Runtime można określić tylko jedno variable_name naraz.
Parametry
LUB ZASTĄP
Jeśli zostanie określona, zmienna o tej samej nazwie zostanie zamieniona.
-
Nazwa zmiennej. Nazwa może być kwalifikowana za pomocą
sessionlubsystem.session. Jeśli nieOR REPLACEzostanie określona, nazwa zmiennej musi być unikatowa w ramach sesji i nie może zduplikować żadnej innej nazwy zmiennej w instrukcji . -
Dowolny obsługiwany typ danych. W przypadku gdy
data_typejest pominięte, należy określić wartośćDEFAULT, a typ jest określany przezdefault_expression. DEFAULT default_expression lub = default_expression
Definiuje początkową wartość zmiennej po utworzeniu.
default_expression musi być możliwe do rzutowania nadata_type. Jeśli nie określono wartości domyślnej, zmienna jest inicjowana za pomocąNULL.Jeśli wyrażenie zawiera podzapytanie, Azure Databricks zgłasza błąd INVALID_DEFAULT_VALUE.SUBQUERY_EXPRESSION.
Przykłady
-- Create a variable with a default
> DECLARE VARIABLE myvar INT DEFAULT 5;
> VALUES (myvar);
5
-- Setting a variable
> SET VAR myvar = (SELECT sum(c1) FROM VALUES(1), (2) AS T(c1);
> VALUES (myvar);
3
-- Variables are the outermost scope.
> SELECT myvar, t.myvar, session.myvar FROM VALUES(1) AS T(myvar);
1 1 3
> DROP TEMPORARY VARIABLE myvar;
-- A minimalist variable declaration
> DECLARE myvar = 5;
> VALUES (myvar);
5
-- Declaring multiple variables
> DECLARE var1, var2 DOUBLE DEFAULT rand();
> VALUES (var1, var2);
0.3745401188473625 0.3745401188473625
-- Using a variable with an IDENTIFIER clause
> DECLARE colname STRING;
> SET VAR colname = 'c1';
> SELECT IDENTIFIER(colname) FROM VALUES(1, 2) AS T(c1, c2);
1
> SET VAR colname = 'c2';
> SELECT IDENTIFIER(colname) FROM VALUES(1, 2) AS T(c1, c2);
2
Powiązane artykuły
- DROP VARIABLE
- IDENTIFIER klauzuli
- SET zmienna