加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数组 – 在PL/pgSQL中迭代整数[]

发布时间:2020-12-13 16:37:16 所属栏目:百科 来源:网络整理
导读:我试图循环一个整数数组(integer [])在一个plpgsql函数。这样的事情 declare a integer[] = array[1,2,3]; i bigint;begin for i in aloop raise notice "% ",i;end loop;return true;end 在我的实际用例中,整数数组a作为参数传递给函数。我得到这个错误:
我试图循环一个整数数组(integer [])在一个plpgsql函数。这样的事情
declare
    a integer[] = array[1,2,3];
    i bigint;
begin
    for i in a
loop 
    raise notice "% ",i;
end loop;
return true;
end

在我的实际用例中,整数数组a作为参数传递给函数。我得到这个错误:

06001

如何正确循环数组?

DECLARE
   a integer[] := array[1,3];
   i integer;                   -- int,not bigint!
BEGIN
FOR i IN 1 .. array_upper(a,1)
LOOP
   RAISE NOTICE '%',a[i];      -- single quotes!
END LOOP;
RETURN TRUE;
END

或尝试new FOREACH in PostgreSQL 9.1

FOREACH i IN ARRAY a
LOOP 
   RAISE NOTICE '%',i;
END LOOP;

然而,generate_series()unnest()的基于集合的解决方案通常比大套件的循环更快。

基本例子:

> PostgreSQL: Frequency Table Expansion
> Select each month between a start and end date

搜索标签generate-series或unnest了解更多。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读