Kategorien:

DDL für Konten und Sitzungen

SET

Initialisiert den Wert einer -Sitzungsvariablen mit dem Ergebnis eines SQL-Ausdrucks.

Siehe auch:

SHOW VARIABLES , UNSET

Syntax

SET <var> = <expr>

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

Parameter

Variable

Gibt den Bezeichner für die zu initialisierende Variable an.

Ausdruck

Gibt den SQL-Ausdruck für die Variable an.

Nutzungshinweise

  • Der Befehl unterstützt das Setzen mehrerer Variablen in derselben Anweisung.

  • Wenn der Befehl komplexe Ausdrücke ausführt, muss möglicherweise ein virtuelles Warehouse in der Sitzung ausgeführt werden.

  • Die Anzahl der Ausdrücke muss mit der Anzahl der zu initialisierenden Variablen übereinstimmen.

  • Die Größe von Zeichenfolgen- oder Binärwertvariablen ist auf 256 Byte begrenzt.

  • Der Bezeichner (d. h. Name) einer SQL-Variable ist auf 256 Zeichen begrenzt.

  • Variablennamen wie CURRENT oder PUBLIC sind für die zukünftige Verwendung durch Snowflake reserviert und können nicht verwendet werden.

Beispiele

Diese beiden Beispiele verwenden Konstanten:

SET V1 = 10;

SET V2 = 'example';

In diesem Beispiel werden mehrere Variablen gleichzeitig festgelegt:

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

In diesem Beispiel wird die Variable auf den Wert eines nicht trivialen Ausdrucks festgelegt, der eine SQL-Abfrage verwendet:

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

Das folgende Beispiel zeigt, dass bei einem SET-Befehl alle Ausdrücke auf der rechten Seite des Zuweisungsoperators ausgewertet werden, bevor der erste Ausdruck auf der linken Seite des Operators festgelegt wird. Beachten Sie, dass der Wert der Variablen mit dem Namen „max“ auf dem alten Wert von „min“ und nicht auf dem neuen Wert basiert.

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