You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 12.17如何从JSON数组中提取指定字段值

提取JSON数组嵌套对象的字段值(PostgreSQL 12.17)

你已经用json_array_elements展开了数组,接下来只需要通过PostgreSQL的JSON运算符逐层提取嵌套字段即可,直接给你可用的SQL示例:

SELECT
  elem->'left'->>'value' AS left_value
FROM
  public.rule_definition,
  json_array_elements(design->'design') AS elem;

代码说明:

  • design->'design':从public.rule_definition表的design列中,取出顶层的design数组(对应你描述的JSON结构里的数组)
  • json_array_elements(...) AS elem:把数组展开为多行,每行对应一个数组元素,命名为elem(JSON类型)
  • elem->'left':从每个数组元素里取出left对象(JSON类型)
  • ->>'value':从left对象中提取value字段的文本值;如果需要保留JSON类型而非文本,换成->'value'即可

额外处理:

如果存在数组元素缺少left或value字段的情况,可以用COALESCE设置默认值避免空值:

SELECT
  COALESCE(elem->'left'->>'value', '无值') AS left_value
FROM
  public.rule_definition,
  json_array_elements(design->'design') AS elem;

如果你的design列是jsonb类型,只需要把json_array_elements替换为jsonb_array_elements即可,运算符用法完全一致。

内容的提问来源于stack exchange,提问作者Les

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 07:34:53