📜  PostgreSQL – 继续

📅  最后修改于: 2022-05-13 01:57:06.325000             🧑  作者: Mango

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 时跳过迭代。