SET¶
将 会话变量 的值初始化为 SQL 表达式的结果。
- 另请参阅:
语法¶
SET <var> = <expr>
SET ( <var> [ , <var> ... ] ) = ( <expr> [ , <expr> ... ] )
参数¶
var
指定要初始化的变量的标识符。
expr
指定变量的 SQL 表达式。
使用说明¶
可以在同一语句中设置多个变量。
如果您指定了复杂的表达式,可能需要会话中有一个正在运行的虚拟仓库。
表达式的数量必须与需要初始化的变量的数量相匹配。
字符串或二进制变量的大小限制为 256 字节。
SQL 变量的标识符(即名称)限于 256 个字符。
CURRENT
或PUBLIC
等变量名称保留供 Snowflake 将来使用,不能使用。
示例¶
以下两个示例使用常量来设置变量:
SET V1 = 10;
SET V2 = 'example';
此示例一次性设置多个变量:
SET (V1, V2) = (10, 'example');
此示例将变量设置为使用 SQL 查询的非简单表达式的值:
SET id_threshold = (SELECT COUNT(*)/2 FROM table1);
下面的示例显示 SET 命令先计算赋值运算符右侧的所有表达式,然后再设置运算符左侧的第一个表达式的结果。请注意,名为 max
的变量的值基于 min
的旧值(而非新值)设置。
SET (min, max) = (40, 70);
SET (min, max) = (50, 2 * $min);
SELECT $max;
+------+
| $MAX |
|------|
| 80 |
+------+