PostgreSQL 对数组的遍历方法

这篇文章主要介绍了PostgreSQL 对数组的遍历操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。
 
PostgreSQL 提供了数组类型。
 
我来演示下如何具体使用
 
创建一个有数组类型字段的表。
 
1create table test_array(id serial primary key, str1 int[][][]);
 
插入两条测试数据。
 
insert into test_array values (1,array[[[1,2],[3,4],[5,6]],[[20,30],[40,50],[70,100]]]);
insert into test_array values (2,array[[[100,200],[300,400],[500,600]],[[2000,3000],[4000,5000],[7000,10000]]]);
 
 
 
为了能直观的看到结果集,我们得把数组的值换成普通的类型拿出来, 有以下几种方法。
 
不带分片的遍历,
 
create or replace function sp_array2table_simple(
anyarray
)
returns table (element int) as
$ytt$
declare array1 alias for $1;
 x int;
begin
 drop table if exists tmp_1;
 create temporary table tmp_1 (id int);
 
 <<label1>> foreach x in array array1
 loop
 insert into tmp_1 values (x);
 end loop label1;
 
 return query select * from tmp_1;
end;
$ytt$ language plpgsql;
 
t_girl=#select sp_array2table_simple(str1) as array_list from test_array where id = 2;
 
 array_list
————
  100
  200
  300
  400
  500
  600
  2000
  3000
  4000
  5000
  7000
  10000
(12 行记录)
 
时间:7.780 ms
【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章