SET

会话变量 的值初始化为 SQL 表达式的结果。

另请参阅:

SHOW VARIABLESUNSET

语法

SET <var> = <expr>

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

参数

var

指定要初始化的变量的标识符。

expr

指定变量的 SQL 表达式。

使用说明

  • 可以在同一语句中设置多个变量。

  • 如果您指定了复杂的表达式,可能需要会话中有一个正在运行的虚拟仓库。

  • 表达式的数量必须与需要初始化的变量的数量相匹配。

  • 字符串或二进制变量的大小限制为 256 字节。

  • SQL 变量的标识符(即名称)限于 256 个字符。

  • CURRENTPUBLIC 等变量名称保留供 Snowflake 将来使用,不能使用。

示例

以下两个示例使用常量来设置变量:

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

SELECT $max;
Copy
+------+
| $MAX |
|------|
|   80 |
+------+
语言: 中文