我知道有SELECT array_agg(f) FROM (SELECT blah FROM stuff) f
的过程,这在SQL中很棒,但是在PL / pgSQL中编写函数时,是否有简写方法?
我试图将JSON密钥放入一个可用于查看长度的数组中。 有点像...
v_len := array_length( array_agg(json_object_keys(myjson)), 1);
而不是长,DECLARE变量,做一个SELECT array_agg(f) INTO ...
,我一直在做。我似乎有数百个使用相同SQL字符串的实现,但我真的想减少我的代码,我的手指从所有冗余打字中麻木。
我用这种简写方法遗漏了什么?
答案 0 :(得分:3)
您可以使用ARRAY(subselect)构造函数
DO $$
DECLARE a int[];
BEGIN
a := ARRAY(SELECT * FROM generate_series(1,10));
RAISE NOTICE 'result: %', a;
END;
$$;