解开多维数组
来自 PostgreSQL wiki
跳转到导航跳转到搜索
目的:模拟 unnest 多维数组的功能。由 Pavel Stehule 提供,来自 多维数组上的 unnest
注意:这不会在超过二维的数组上工作。关于如何处理多维数组的思路,请查看 多维数组映射
函数
CREATE OR REPLACE FUNCTION public.reduce_dim(anyarray)
RETURNS SETOF anyarray AS
$function$
DECLARE
s $1%type;
BEGIN
FOREACH s SLICE 1 IN ARRAY $1 LOOP
RETURN NEXT s;
END LOOP;
RETURN;
END;
$function$
LANGUAGE plpgsql IMMUTABLE;
select reduce_dim(array[array[1, 2], array[2, 3], array[4,5], array[9,10]]);
reduce_dim
------------
{1,2}
{2,3}
{4,5}
{9,10}