Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks SQL
Databricks Runtime 14.1 e versioni successive
Crea una variabile temporanea privata della sessione a cui è possibile fare riferimento ovunque sia possibile usare un'espressione costante . È anche possibile usare le variabili in combinazione con la clausola IDENTIFIER per parametrizzare gli identificatori nelle istruzioni SQL.
Le variabili vengono modificate usando l'istruzione SET VARIABLE.
Non è possibile fare riferimento alle variabili temporanee all'interno di:
- un vincolo di controllo
- una colonna generata
- un'espressione predefinita
- corpo di una funzione SQL definita dall'utente e persistente
- corpo di una visualizzazione persistente
Le variabili temporanee sono dette anche variabili di sessione .
Sintassi
DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name [, ...]
[ data_type ] [ { DEFAULT | = } default_expression ]
Prima di Databricks Runtime 17.2 è possibile specificare solo uno variable_name alla volta.
Parametri
O SOSTITUISCI
Se specificato, la variabile con lo stesso nome viene sostituita.
-
Nome della variabile. Il nome può essere qualificato con
sessionosystem.session. A meno cheOR REPLACEnon venga specificato, il nome della variabile deve essere univoco all'interno della sessione e non deve duplicare alcun altro nome di variabile nell'istruzione . -
Qualsiasi tipo di dati supportato. Se
data_typeviene omesso, è necessario specificareDEFAULTe il tipo è derivato dadefault_expression. DEFAULT default_expression o = default_expression
Definisce il valore iniziale della variabile dopo la creazione.
default_expression deve essere convertibile adata_type. Se non viene specificato alcun valore predefinito, la variabile viene inizializzata conNULL.Se l'espressione include una sottoquery, Azure Databricks genera un errore INVALID_DEFAULT_VALUE.SUBQUERY_EXPRESSION.
Esempi
-- 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