相当于 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;