0

我知道有 的过程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);

而不是 long, DECLARE a variable, do a SELECT array_agg(f) INTO ...,我一直在做。我似乎有数百个使用相同的 SQL 字符串的实现,但我真的想减少我的代码,我的手指因所有多余的输入而麻木。

这种速记方法我缺少什么?

4

1 回答 1

3

您可以使用 ARRAY(subselect) 构造函数

DO $$
DECLARE a int[];
BEGIN
  a := ARRAY(SELECT * FROM generate_series(1,10));
  RAISE NOTICE 'result: %', a;
END;
$$;
于 2017-08-15T10:35:31.420 回答