PostgreSQL 14中如何访问jsonb字段内的指定key?
PostgreSQL 针对jsonb类型提供了原生的取值运算符,不需要调用额外内置函数即可实现需求,不同场景的查询写法如下:
1. 直接查询sub_total的值
如果需要保留返回值的jsonb类型,使用->运算符:
SELECT total->'sub_total' AS sub_total FROM 替换为你的实际表名;
如果需要直接获取文本格式的纯值,使用->>运算符:
SELECT total->>'sub_total' AS sub_total FROM 替换为你的实际表名;
2. 按sub_total的值筛选行
如果需要筛选出sub_total符合特定条件的记录,示例如下(假设sub_total存储的是数值类型):
SELECT * FROM 替换为你的实际表名 WHERE (total->>'sub_total')::numeric > 100;
补充常用场景处理
- 若部分行的total字段不存在
sub_total键,查询会返回null,可通过COALESCE设置默认值:
SELECT COALESCE(total->>'sub_total', '0') AS sub_total FROM 替换为你的实际表名;
- 若需要仅查询包含
sub_total键的行,可使用?运算符判断键是否存在:
SELECT * FROM 替换为你的实际表名 WHERE total ? 'sub_total';
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

