解开多维数组

来自 PostgreSQL wiki
跳转到导航跳转到搜索

库代码片段

解开多维数组

适用于 PostgreSQL

9.1+

SQL

依赖于


目的:模拟 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}