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

PostgreSQL如何提取JSON字段指定键值并拼接为目标查询结果

PostgreSQL 提取JSON字段拼接实现方法

用到的核心JSON操作符/函数

  • ->:JSON取值操作符,入参为键名,返回对应子节点的JSON类型值,用于逐层定位嵌套JSON结构
  • ->>:JSON取值操作符,入参为键名,返回对应子节点的文本类型值,用于直接获取最终的字段值做后续计算/拼接
  • concat_ws():通用字符串拼接函数,指定分隔符后可拼接多个字段值,对null值容错性更好

实现语句

假设存储JSON数据的字段名为json_col,所属表名为your_table,语句如下:

SELECT
  CONCAT_WS(
    ' ',
    -- 定位到time节点后取出increments的值,自动转文本
    json_col->'time'->>'increments',
    -- 定位到time节点后取出increment_type的值
    json_col->'time'->>'increment_type'
  ) AS Column_a
FROM your_table;

针对你给出的样例JSON数据,上述语句执行后Column_a的返回值就是 5 weeks,完全匹配需求。

补充说明

  • 上述写法同时兼容json和jsonb两种字段类型,不需要调整语法
  • 如果习惯用拼接符写法,也可以用||实现同等效果,语句如下:
SELECT
  (json_col->'time'->>'increments') || ' ' || (json_col->'time'->>'increment_type') AS Column_a
FROM your_table;

该写法的缺点是如果两个提取值任意一个为null,整个拼接结果会返回null,容错性弱于concat_ws()写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:27:18