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

PostgreSQL查询jsonb嵌套字段时出现column doesn't exist错误怎么办

PostgreSQL jsonb字段嵌套查询报错问题解答

问题原因

PostgreSQL 语法中,双引号(")用于标识数据库对象(表名、列名等),未被双引号包裹的标识符会被自动转为小写。你在->操作符后使用双引号包裹feePercent,PostgreSQL 会将其识别为列名,自动转为小写feepercent后查找对应列,因此触发列不存在的报错。
JSON/JSONB 类型的键名属于字符串值,需要使用单引号(')包裹,才会被识别为键名字符串传入->操作符。

解决方法

将->后的键名外层的双引号替换为单引号即可,正确查询语句如下:

select "uuid", "tax"->'feePercent' from "Site" where "uuid"='xxx';

如果需要直接返回文本类型的结果而非 jsonb 类型,可以改用->>操作符:

-- 返回text类型的结果
select "uuid", "tax"->>'feePercent' from "Site" where "uuid"='xxx';
-- 如需数值类型可自行强转
select "uuid", ("tax"->>'feePercent')::integer as fee_percent from "Site" where "uuid"='xxx';

内容的提问来源于stack exchange,提问作者Joey Yi Zhao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:42:01