Hologres / PostgreSQL jsonb 常用函数 & 操作符对照表

测试表准备(Hologres/PG 通用)

复制代码
CREATE TABLE tmp_jsonb_demo (
    id INT,
    info jsonb
);
INSERT INTO tmp_jsonb_demo VALUES
(1, '{"name":"订单A","amount":100.0,"tags":["对账","异常"],"meta":{"create_time":"2026-10-19"}}'::jsonb),
(2, '["苹果","香蕉",100]'::jsonb),
(3, '{}'::jsonb),
(4, NULL);
分类 函数 / 操作符 功能说明 示例 SQL 执行结果
取值操作符 -> 获取 json 子节点,返回jsonb 类型 SELECT info -> 'name' FROM tmp_jsonb_demo WHERE id=1; "订单A"(jsonb)
->> 获取 json 子节点,返回text 文本(最常用,可直接 cast) SELECT info ->> 'amount' FROM tmp_jsonb_demo WHERE id=1; 100.0(字符串)
#> 多层路径取值,返回 jsonb SELECT info #> '{meta,create_time}' FROM tmp_jsonb_demo WHERE id=1; "2026-10-19"
#>> 多层路径取值,返回 text(推荐多层使用) SELECT info #>> '{meta,create_time}' FROM tmp_jsonb_demo WHERE id=1; 2026-10-19
Key 存在判断 col ? 'key' 判断顶层是否存在指定 key,等价jsonb_exists SELECT info ? 'name' FROM tmp_jsonb_demo WHERE id=1; true
jsonb_exists(jsonb, text) 判断顶层 key 是否存在,兼容写法 SELECT jsonb_exists(COALESCE(info, '{}'::jsonb), 'name') FROM tmp_jsonb_demo WHERE id=1; true
`? ` 是否存在任意一个 key(多 key 或条件) `SELECT info ? array'name','xxx' FROM tmp_jsonb_demo WHERE id=1;` true
?& 必须同时存在全部 key(多 key 且条件) SELECT info ?& array['name','amount'] FROM tmp_jsonb_demo WHERE id=1; true
包含匹配 @> 左边 json 是否包含右边 json SELECT info @> '{"name":"订单A"}'::jsonb FROM tmp_jsonb_demo WHERE id=1; true
<@ 左边 json 被包含在右边 json 内 SELECT '{"name":"订单A"}'::jsonb <@ info FROM tmp_jsonb_demo WHERE id=1; true
JSON 对象修改 jsonb_set(target, path, new_val, [create_missing]) 修改 / 新增指定路径的值 ```sql
相关推荐
千桐科技1 小时前
qData 数据中台专业版功能解析:告别 Excel 与 SQL 拼凑,打通系统合并的可追踪数据链路
数据库·sql·excel·qdata
jiushidt1 小时前
在 DBeaver 中为 SQLite 启用 SpatiaLite
数据库·sqlite
码士集团小青2 小时前
Google 开源了啥,让 AI Agent 碰数据库不再是定时炸弹
数据库·oracle
CS创新实验室2 小时前
数据库突然断电,凭什么没丢数据?——WAL 日志与崩溃恢复
数据库·mysql
Warolitbos3 小时前
【数据库】SQL面试基础15题,测试/开发必背速查
数据库
ClouGence3 小时前
开源数据库管理工具 CloudDM 新版本上线,新增 AI SQL 助手,支持 Elasticsearch、崖山数据库
数据库·sql·elasticsearch
kele_z3 小时前
手工修改数据库中的数据时,我会加的四道保险
mysql·postgresql
ly76893 小时前
PostgreSQL 执行计划深读:从 EXPLAIN 输出到代价模型驱动的 SQL 改写
数据库·sql·postgresql·explain·执行计划·代价模型
Python自动化直播4 小时前
自动化笔记:素材管理、命名、轮换的几条土办法
linux·运维·数据库