Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime 14.1 e versões superiores
Cria uma variável privada e temporária de sessão que você pode referenciar sempre que uma expressão constante puder ser usada. Você também pode usar variáveis em combinação com a cláusula IDENTIFIER para parametrizar identificadores em instruções SQL.
As variáveis são modificadas usando a instrução SET VARIABLE.
As variáveis temporárias não podem ser referenciadas em:
- uma restrição de verificação
- uma coluna gerada
- uma expressão padrão
- o corpo de um UDF SQL persistente
- o corpo de uma visualização persistente
As variáveis temporárias também são chamadas de variáveis de sessão .
Sintaxe
DECLARE [ OR REPLACE ] [ VARIABLE ] variable_name [, ...]
[ data_type ] [ { DEFAULT | = } default_expression ]
Antes do Databricks Runtime 17.2, você só podia especificar um variable_name de cada vez.
Parâmetros
OU SUBSTITUIR
Se especificado, a variável com o mesmo nome é substituída.
-
Um nome para a variável. O nome pode ser qualificado com
sessionousystem.session. A menos queOR REPLACEseja especificado, o nome da variável deve ser exclusivo dentro da sessão e não deve duplicar nenhum outro nome de variável na instrução. -
Qualquer tipo de dados suportado. Se
data_typefor omitido, você deverá especificarDEFAULT, e o tipo será derivado dodefault_expression. DEFAULT default_expression ou = default_expression
Define o valor inicial da variável após a criação.
default_expression deve ser convertível paradata_type. Se nenhum padrão for especificado, a variável será inicializada comNULL.Se a expressão incluir uma subconsulta, o Azure Databricks gera um erro INVALID_DEFAULT_VALUE.SUBQUERY_EXPRESSION.
Exemplos
-- 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