【问题标题】:How to make some jsonb field's value to a json array in PostgreSQL?如何将一些 jsonb 字段的值设置为 PostgreSQL 中的 json 数组?
【发布时间】:2021-12-31 10:17:42
【问题描述】:

这是一张表格:

create table test(
  fjson jsonb
);

然后插入一些值:

insert into test values
('{"name":"A"}'::jsonb),
('{"name":"B"}'::jsonb),
('{"name":"C"}'::jsonb);

我想得到一个像下面这样的 json 数组:

[
  {"name":"A"},
  {"name":"B"},
  {"name":"C"}
]

SQL怎么写?

谢谢。

问题解决了。谢谢

do $$ declare
    jdata jsonb;
begin
    create temp table test(
      fjson jsonb
    ) on commit drop;
    
    insert into test values
    ('{"name":"A"}'::jsonb),
    ('{"name":"B"}'::jsonb),
    ('{"name":"C"}'::jsonb);
    
    select (select jsonb_agg(fjson) from test) into jdata;
    raise notice '%',jdata;
end;
$$ language plpgsql;

【问题讨论】:

    标签: json postgresql


    【解决方案1】:

    你可以使用

    SELECT jsonb_agg(fjson) from test
    

    获取一个jsonb数组,或者

    SELECT array_agg(fjson) from test
    

    获取原生 pg 数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 2023-03-18
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      相关资源
      最近更新 更多