Partilhar via


DECLARAR VARIÁVEL

Aplica-se a: Marque Sim Databricks SQL Marque Sim Databricks Runtime 14.1 e superior

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 SQL UDF persistente
  • o corpo de uma vista 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 ]

Parâmetros

  • OU SUBSTITUIR

    Se especificado, a variável com o mesmo nome é substituída.

  • variable_name

    Um nome para a variável. O nome pode ser qualificado com session ou system.session. A menos que OR REPLACE seja especificado, o nome deve ser exclusivo dentro da sessão.

  • data_type

    Qualquer tipo de dados suportado. Se data_type for omitido, você deverá especificar DEFAULT, e o tipo será derivado do default_expression.

  • PADRÃO default_expression ou= default_expression

    Define o valor inicial da variável após a criação. default_expression deve ser passível de transmissão a data_type. Se nenhum padrão for especificado, a variável será inicializada com NULL.

    Se a expressão incluir uma subconsulta, o Azure Databricks gerará um INVALID_DEFAULT_VALUE. SUBQUERY_EXPRESSION erro.

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

-- 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