PostgreSQL – 循环语句
循环语句用于简单地定义一个无条件循环,该循环重复执行代码语句,直到遇到返回或退出语句后终止。
句法:
<
在上述语法中,我们必须理想地执行以下操作:
- 终止条件:我们应该尝试在循环体中定义一个条件,直到我们的循环运行为止。一旦此条件失败,循环将终止。如果我们不定义终止条件,则循环执行无限次,我们会遇到无限循环的情况。
- 增量/减量:我们应该尝试在主体内包含增量或减量语句来增加或减少运行变量。如果我们不改变变量的值,循环就会一次又一次地陷入相同的状态,我们就会遇到无限循环的情况。
要终止循环的运行,我们可以简单地包含一个if 语句和一个exit 语句,语法如下:
<
当我们将一个循环放在另一个循环中时的条件称为嵌套循环。重要的是要注意,每当我们使用嵌套循环时,我们必须在 exit 或 continue 语句中定义循环标签,以准确显示我们指的是哪个循环。
<>
loop
statements;
<>
loop
inside statements;
exit <>
end loop;
end loop;
示例 1:
以下示例显示如何使用循环语句打印从 1 到 5 的所有数字。
do $$
declare
n integer:= 6;
cnt integer := 1 ;
begin
loop
exit when cnt = n ;
raise notice '%', cnt;
cnt := cnt + 1 ;
end loop;
end; $$;
输出:
在上面的示例中,我们定义了一个cnt 变量,其值在每次迭代时都会增加。打印 cnt 的值,直到它达到我们的 n 的峰值,之后循环终止。
示例 2:
以下示例显示如何使用循环语句打印从 10 到 1 的所有数字。
do $$
declare
n integer:= 0;
cnt integer := 10 ;
begin
loop
exit when cnt = n ;
raise notice '%', cnt;
cnt := cnt - 1 ;
end loop;
end; $$;
输出:
在上面的示例中,我们定义了一个cnt 变量,其值在每次迭代时都会减小。打印 cnt 的值,直到它达到我们的最小值 n ,之后循环终止。