PostgreSQL的循環(huán)

loop循環(huán)

1、語法:
loop
exit when condition;
statement;
end loop;

案例:
create or replace function loop_test(n integer)
returns integer as $$
declare
    counter integer :=0;
begin
    if n<0 then 
        return 0;
    end if;
    loop
        exit when counter = n;
        counter := counter +1;
    end loop;
    return counter;
end; $$
language plpgsql;

select loop_test(4)
結(jié)果:4

while循環(huán)

2、語法:
while condition loop
    statement;
end loop;

案例:
create or replace function while_test(n integer)
returns integer as $$
declare counter integer:=0;
begin
    if (n<0) then
        return 0;
    end if;
    
    while counter<n loop
        counter := counter + 1;
    end loop;
    return counter;
    
end; $$
language plpgsql;

select while_test(4);

for循環(huán)

3、語法:
for loop_counter in [reverse] from..to [by exepression] loop
    statement;
end loop;

from..to指最小值..最大值 的一個范圍,如:1..5


案例1:
create or replace function for_test1()
returns integer as $$
declare counter integer:=0;
begin
    for i in 1..5 loop
        counter := counter+i; 
    end loop;
    return counter;
    
end; $$
language plpgsql;
結(jié)果:
15



案例2:
do $$
begin
    for counter in reverse 5..1  loop
        raise notice 'counter is %',counter; 
    end loop;

end; $$
結(jié)果:
> 注意:  counter is 5
> 注意:  counter is 4
> 注意:  counter is 3
> 注意:  counter is 2
> 注意:  counter is 1



案例3:
do $$
begin
for counter in 1..5 by 2 loop
    raise notice 'counter is %',counter;
end loop;
end; $$
結(jié)果:
> 注意:  counter is 1
> 注意:  counter is 3
> 注意:  counter is 5



案例4:
create or replace function for_test4(n integer default 10)
returns void as $$
declare res record;
begin
    for res in select title from film limit n loop
        raise notice 'title is %',res.title;
    end loop;
    
end; $$
language plpgsql;

select for_test4();
結(jié)果:
空
信息:
> 注意:  title is Chamber Italian
> 注意:  title is Grosse Wonderful
> 注意:  title is Airport Pollock
> 注意:  title is Bright Encounters
> 注意:  title is Academy Dinosaur
> 注意:  title is Ace Goldfinger
> 注意:  title is Adaptation Holes
> 注意:  title is Affair Prejudice
> 注意:  title is African Egg
> 注意:  title is Agent Truman

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容