SET

Inicializa o valor de uma variável de sessão para o resultado de uma expressão SQL.

Consulte também:

SHOW VARIABLES , UNSET

Sintaxe

SET <var> = <expr>

SET ( <var> [ , <var> ... ] )  = ( <expr> [ , <expr> ... ] )
Copy

Parâmetros

var

Especifica o identificador da variável a ser inicializada.

expr

Especifica a expressão SQL para a variável.

Notas de uso

  • O comando oferece suporte à definição de múltiplas variáveis na mesma instrução.

  • Se o comando executar expressões complexas, pode exigir um warehouse virtual em funcionamento na sessão.

  • O número de expressões deve corresponder ao número de variáveis a serem inicializadas.

  • O tamanho da cadeia de caracteres ou das variáveis binárias é limitado a 256 bytes.

  • O identificador (isto é, nome) para uma variável SQL é limitado a 256 caracteres.

  • Nomes de variáveis como CURRENT ou PUBLIC são reservados para uso futuro pelo Snowflake e não podem ser usados.

Exemplos

Estes dois exemplos utilizam constantes:

SET V1 = 10;

SET V2 = 'example';
Copy

Este exemplo define mais de uma variável de cada vez:

SET (V1, V2) = (10, 'example');
Copy

Este exemplo define a variável como o valor de uma expressão não trivial que usa uma consulta SQL:

SET id_threshold = (SELECT COUNT(*)/2 FROM table1);
Copy

O exemplo a seguir mostra se um comando SET avalia todas as expressões no lado direito do operador de atribuição antes de definir a primeira expressão no lado esquerdo do operador. Observe que o valor da variável chamada “max” é definido com base no valor antigo de “min”, e não no novo valor.

set (min, max) = (40, 70);
Copy
set (min, max) = (50, 2 * $min);
+----------------------------------+
| status                           |
|----------------------------------|
| Statement executed successfully. |
+----------------------------------+
select $max;
+------+
| $MAX |
|------|
|   80 |
+------+
Copy