【问题标题】:Equivalent of jsonb_path_query_array in Postgresql-11等效于 Postgresql-11 中的 jsonb_path_query_array
【发布时间】:2021-09-02 16:04:03
【问题描述】:
[
  {
    "name" : "A",
    "key" : "KA"
  },
  {
    "name" : "B",
    "key" : "KB"
  }
]

给定一列包含上述数据,

我使用select jsonb_path_query_array(column, '$.key') 得到输出[KA, KB]

但是这在 Postgres-11 中不起作用。有没有相同的替代品?

【问题讨论】:

  • 是的,当我在本地尝试时,该代码有效。但是,当我尝试在我公司的服务器上部署它时,我发现该功能不可用,因为我公司目前使用的是版本 11。
  • 酷。谢谢队友,感谢帮助:)

标签: sql postgresql postgresql-11


【解决方案1】:

是的。这会产生一个 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;

【讨论】:

  • 谢谢。我应该用表名替换 t。
猜你喜欢
  • 1970-01-01
  • 2015-03-24
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
  • 1970-01-01
相关资源
最近更新 更多