Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
Databricks Runtime 14.1 a vyšší
Vytvoří dočasnou soukromou proměnnou relace, na kterou můžete odkazovat všude, kde lze použít konstantní výraz. Můžete také použít proměnné v kombinaci s klauzulí IDENTIFIER k parametrizaci identifikátorů v příkazech SQL.
Proměnné se mění pomocí příkazu SET VARIABLE.
Na dočasné proměnné nelze odkazovat v rámci:
- kontrolní omezení
- vygenerovaný sloupec
- výchozí výraz
- tělo trvalé SQL UDF funkce definované uživatelem
- tělo perzistentního zobrazení
Dočasné proměnné se také nazývají proměnné session.
Syntaxe
DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name [, ...]
[ data_type ] [ { DEFAULT | = } default_expression ]
Před modulem Databricks Runtime 17.2 můžete zadat pouze jednu variable_name po druhé.
Parametry
NASADIT NEBO NÁHRADIT
Pokud je zadaná, nahradí se proměnná se stejným názvem.
-
Název proměnné. Název může být kvalifikovaný s
sessionnebosystem.session. PokudOR REPLACEnení zadán, musí být název proměnné v rámci relace jedinečný a nesmí duplikovat žádný jiný název proměnné v příkazu. -
Libovolný podporovaný datový typ. Je-li
data_typevynechán, je nutné zadatDEFAULTa typ je odvozen zdefault_expression. VÝCHOZÍ default_expression nebo= default_expression
Definuje počáteční hodnotu proměnné po vytvoření.
default_expression musí být přetypován nadata_type. Pokud není zadána žádná výchozí hodnota, proměnná se inicializuje pomocíNULL.Pokud výraz obsahuje poddotaz, Azure Databricks vyvolá chybu INVALID_DEFAULT_VALUE.SUBQUERY_EXPRESSION.
Příklady
-- 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