环境
系统平台:
IBM:Linux on System z Red Hat Enterprise Linux 7
版本:
4.5
详细信息
新增SQL/JSON path特性,支持基于Json元素的复杂查询
| CREATE TABLE t_track ( a jsonb); |
|
INSERT INTO t_track (a) VALUES ('
{ "gpsname" : "gps1" , "track" : { "segments" : [ { "location" : [ 47.763 , 13.4034 ], "start time" : "2018-10-14 10:05:14" , "HR" : 73 }, { "location" : [ 47.706 , 13.2635 ], "start time" : "2018-10-14 10:39:21" , "HR" : 130 } ] } }'); |
|
SELECT jsonb_pretty(a) FROM t_track; |

在HGDB新版本中可以使用SQL/JSON path函数表达式查询
|
SELECT jsonb_path_query(a,'$.gpsname') FROM t_track ; |

若Json数据比较复杂,涉及到较多层级,这时SQL/JSON path函数表达式发挥优势,比如查询表t_track的track.segments
| SELECT jsonb_pretty(jsonb_path_query(a,'$.track.segments')) FROM t_track ; |

track.segments 是个数组,可以通过方括号[]查询相应数组元素

查询下一层级的元素

使用 SQL/JSON path 函数表达式查询 Json 数据时,可以指定 filter 条件查询满足条件的 Json 元素,例如查询 HR 元素值大于 100 的 track.segments 元素

若只想显示指定元素信息,例如仅显示 “start time” 元素

可以指定多个过滤条件

jsonb_path_exists() 函数判断是否存在指定 Json 路径

更多详细信息请登录【瀚高技术支持平台】查看https://support.highgo.com/#/index/docContent/7bc0ff29056602bd