在PostgreSQL中将数组解包装为行的最快方法是什么?例如,
我们有:
a - {1,2} {2,3,4}
我们需要:
b - 1 2 2 3 4
我正在使用:
select explode_array(a) as a from a_table;
explode_array在哪里:
create or replace function explode_array(in_array anyarray) returns setof anyelement as $$ select ($1)[s] from generate_series(1,array_upper($1, 1)) as s; $$
有什么更好的办法吗?
使用unnest。例如:
CREATE OR REPLACE FUNCTION test( p_test text[] ) RETURNS void AS $BODY$ BEGIN SELECT id FROM unnest( p_test ) AS id; END; $BODY$ LANGUAGE plpgsql IMMUTABLE COST 1;