Uwaga
Dostęp do tej strony wymaga autoryzacji. Może 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 ]
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ą
session
lubsystem.session
. O ileOR REPLACE
nie zostanie określona, nazwa musi być wyjątkowa w ramach sesji. -
Dowolny obsługiwany typ danych. W przypadku gdy
data_type
jest 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_expressio
n 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
-- 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