系统平台:
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
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69994931/viewspace-2784707/
,如需转载,请注明出处,否则将追究法律责任。