REPEAT (Snowflake Scripting)¶
REPEAT
循环迭代,直到指定的条件为 true。REPEAT
循环测试循环结束时的条件。这意味着 REPEAT
循环的正文总是至少执行一次。
有关循环的更多信息,请参阅 使用循环。
备注
本 Snowflake Scripting 结构仅在 Snowflake Scripting 区块 内有效。
语法¶
REPEAT
<statement>;
[ <statement>; ... ]
UNTIL ( <condition> )
END REPEAT [ <label> ] ;
其中:
使用说明¶
在
REPEAT
中将条件放在括号内。例如:REPEAT ( <condition> )
。如果
condition
从不评估为 TRUE,并且循环不包含 BREAK 命令(或等效命令),则循环将无限期运行并消耗 Credit。如果
condition
为 NULL,则将其视为 FALSE。一个循环可以包含多个语句。您可以(但不是必须)使用 BEGIN ...END 区块 包含这些语句。
示例¶
此示例使用循环计算 2 的次方。(该解决方案较为低效,但它确实演示了循环。)
CREATE PROCEDURE power_of_2()
RETURNS NUMBER(8, 0)
LANGUAGE SQL
AS
$$
DECLARE
counter NUMBER(8, 0); -- Loop counter.
power_of_2 NUMBER(8, 0); -- Stores the most recent power of 2 that we calculated.
BEGIN
counter := 1;
power_of_2 := 1;
REPEAT
power_of_2 := power_of_2 * 2;
counter := counter + 1;
UNTIL (counter > 8)
END REPEAT;
RETURN power_of_2;
END;
$$;
以下是执行存储过程的输出:
CALL power_of_2();
+------------+
| POWER_OF_2 |
|------------|
| 256 |
+------------+