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

PostgreSQL如何从列表内的JSON数据按键提取值以返回指定查询结果

问题解答

可以实现你需要的查询效果,以下是适配PostgreSQL数据库(匹配你原写法的::json类型转换语法)的正确方案:

正确SQL语句

SELECT 
  id,
  (status::json -> 0) ->> 'A' AS A,
  (status::json -> 0) ->> 'B' AS B
FROM test;

逻辑说明

  • 首先将text类型的status字段强转为JSON类型:status::json
  • 用-> 0提取JSON数组的第一个元素(数组下标从0开始计数),返回JSON对象格式
  • 用->> '键名'提取JSON对象对应键的字符串值,若数组为空、对应键不存在,都会自动返回null,完全匹配你需要的id=1的返回结果

原语句错误原因

  • @>是JSON包含判断操作符,仅返回true/false布尔值,无法用来提取字段值
  • 用双引号包裹"A"不符合SQL规范,双引号会被识别为数据库对象标识符(如表名、列名),普通字符串需要用单引号包裹
  • 仅写了一个返回逻辑,没有分别生成A、B两个结果列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:45:07