PostgreSQL – 继续
在 PostgreSQL 中, continue语句用于提前跳过当前迭代,直接进入下一个迭代。 continue 语句用于推测所有类型的循环,包括无条件循环、while 循环和 for 循环。
句法:
CONTINUE [ label ] [ WHEN boolean-expression ];
如果我们分析上面的语法:
- 标签:如果不存在标签,则循环的下一次迭代开始。即跳过循环体中剩余的所有语句,控制返回到循环控制表达式。但是,如果标签存在,它指定将继续执行的循环的标签。
- WHEN 条件:它只是一个布尔表达式,指定跳过当前循环迭代的条件。如果条件为真,则将跳过当前循环迭代。但是,如果它为假,则循环遵循正常的流动模式。
标签和WHEN 条件都是可选的,可以与 continue 语句一起使用,也可以不使用;
示例 1:
以下示例将用于显示从 1 到 10 的偶数。
do
$$
declare
cnt int = 0;
begin
loop
-- increment of cnt
cnt = cnt + 1;
-- exit the loop if cnt > 10
exit when cnt > 10;
-- skip the iteration if cnt is an odd number
continue when mod(cnt,2) = 1;
-- print out the cnt
raise notice '%', cnt;
end loop;
end;
$$;
输出:
在上面的例子中,我们使用 continue 语句跳过奇数,因为奇数除以 2 时的余数是 1。
示例 2:
以下示例将用于显示从 1 到 10 的所有数字,而不显示数字 6。
do
$$
declare
cnt int = 0;
begin
loop
-- increment of cnt
cnt = cnt + 1;
-- exit the loop if cnt > 10
exit when cnt > 10;
-- skip the iteration if cnt is an odd number
continue when cnt = 6;
-- print out the cnt
raise notice '%', cnt;
end loop;
end;
$$;
输出:
在上面的例子中,我们使用 continue 语句在cnt变量的值达到 6 时跳过迭代。