SET

Initialise la valeur d’une variable de session dans le résultat d’une expression SQL.

Voir aussi :

SHOW VARIABLES , UNSET

Syntaxe

SET <var> = <expr>

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

Paramètres

var

Spécifie l’identificateur de la variable à initialiser.

expr

Spécifie l’expression SQL de la variable.

Notes sur l’utilisation

  • Vous pouvez définir plusieurs variables dans la même instruction.

  • Si vous spécifiez des expressions complexes, un entrepôt virtuel en cours d’exécution peut être requis dans la session.

  • Le nombre d’expressions doit correspondre au nombre de variables à initialiser.

  • La taille des chaînes ou des variables binaires est limitée à 256 octets.

  • L’identificateur (c’est-à-dire le nom) d’une variable SQL est limité à 256 caractères.

  • Les noms de variables tels que CURRENT ou PUBLIC sont réservés à une utilisation future par Snowflake et ne peuvent être utilisés.

Exemples

Ces deux exemples utilisent des constantes pour définir les variables :

SET V1 = 10;

SET V2 = 'example';
Copy

Cet exemple définit plusieurs variables à la fois :

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

Cet exemple définit la variable sur la valeur d’une expression non triviale qui utilise une requête SQL :

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

L’exemple suivant montre le résultat obtenu lorsqu’une commande SET évalue toutes les expressions du côté droit de l’opérateur d’affectation avant de définir la première expression du côté gauche de l’opérateur. Notez que la valeur de la variable nommée max est définie en fonction de l’ancienne valeur de min et non de la nouvelle valeur.

SET (min, max) = (40, 70);
Copy
SET (min, max) = (50, 2 * $min);

SELECT $max;
Copy
+------+
| $MAX |
|------|
|   80 |
+------+