SET

session variable の値を SQL 式の結果に初期化します。

こちらもご参照ください:

SHOW VARIABLESUNSET

構文

SET <var> = <expr>

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

パラメーター

var

初期化する変数の識別子を指定します。

expr

変数の SQL 式を指定します。

使用上の注意

  • このコマンドは、同じステートメント内の複数の変数の設定をサポートしています。

  • コマンドが複雑な式を実行する場合、セッションで実行中の仮想ウェアハウスが必要になる場合があります。

  • 式の数は、初期化する変数の数と一致する必要があります。

  • 文字列変数またはバイナリ変数のサイズは256バイトに制限されています。

  • SQL 変数の識別子(つまり、名前)は256文字に制限されています。

  • CURRENTPUBLIC などの変数名は、Snowflakeによる将来の使用のために予約されており、使用できません。

次の2つの例では定数を使用しています。

SET V1 = 10;

SET V2 = 'example';
Copy

この例では、一度に複数の変数を設定します。

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

この例では、変数を SQL クエリを使用する重要な式の値に設定します。

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

次の例は、 SET コマンドが演算子の左側の最初の式を設定する前に、代入演算子の右側のすべての式を評価する場合を示しています。「max」という名前の変数の値は、新しい値ではなく、「min」の古い値に基づいて設定されることに注意してください。

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