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

PostgreSQL:遍历JSONB数组提取insType=2对应的insOffset值

PostgreSQL提取JSONB数组中指定条件的字段值

完全可以实现这个需求,PostgreSQL的JSONB函数和操作符能轻松处理这类场景。假设你的表名为your_table,可以用以下两种方式编写查询:

方式1:基础写法

SELECT
    t.UniqueID,
    jsonb_array_elements(t.Configuration)->>'insOffset' AS ins_offset
FROM
    your_table t
WHERE
    (jsonb_array_elements(t.Configuration)->>'insType')::int = 2;

方式2:更高效的LATERAL JOIN写法

SELECT
    t.UniqueID,
    elem->>'insOffset' AS ins_offset
FROM
    your_table t,
    LATERAL jsonb_array_elements(t.Configuration) elem
WHERE
    (elem->>'insType')::int = 2;

关键说明

  • jsonb_array_elements(t.Configuration)会将JSONB数组拆分为单个独立的JSONB对象(别名elem)
  • elem->>'insType'提取insType的字符串值,转为int后与2比较,保证类型匹配更严谨
  • 若需要将insOffset转为数值类型,可使用(elem->>'insOffset')::numeric这类格式转换
  • 如果部分数组对象可能缺失insOffset字段,可添加coalesce(elem->>'insOffset', '无值')来替换null结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:15:58