相当于 Postgresql-11 中的 jsonb_path_query_array
Equivalent of jsonb_path_query_array in Postgresql-11
[
{
"name" : "A",
"key" : "KA"
},
{
"name" : "B",
"key" : "KB"
}
]
给定包含上述数据的列,
我使用select jsonb_path_query_array(column, '$.key')
得到输出[KA, KB]
但这在 Postgres-11 中不起作用。是否有相同的替代方案?
是的。这会产生一个 Postgres 数组。如果需要 JSON 数组,请使用 jsonb_agg
而不是 array_agg
。
select array_agg(j ->> 'key')
from jsonb_array_elements(column) t(j);
更新
select
(select array_agg(j ->> 'key') from jsonb_array_elements(column) t(j))
from the_table;
[
{
"name" : "A",
"key" : "KA"
},
{
"name" : "B",
"key" : "KB"
}
]
给定包含上述数据的列,
我使用select jsonb_path_query_array(column, '$.key')
得到输出[KA, KB]
但这在 Postgres-11 中不起作用。是否有相同的替代方案?
是的。这会产生一个 Postgres 数组。如果需要 JSON 数组,请使用 jsonb_agg
而不是 array_agg
。
select array_agg(j ->> 'key')
from jsonb_array_elements(column) t(j);
更新
select
(select array_agg(j ->> 'key') from jsonb_array_elements(column) t(j))
from the_table;