JSON/JSONB操作符
|
操作符 |
左操作数类型 |
右操作数类型 |
返回类型 |
描述 |
示例 |
||
|---|---|---|---|---|---|---|---|
|
-> |
Array-json(b) |
int |
json(b) |
获得array-json元素。下标不存在返回空。 |
SELECT '[{"a":"foo"}, {"b":"bar"}, {"c":"baz"}]'::json->2;
?column?
-------------
{"c":"baz"}
(1 row) |
||
|
-> |
object-json(b) |
text |
json(b) |
通过键获得值。不存在则返回空。 |
|
||
|
->> |
Array-json(b) |
int |
text |
获得array-json元素。下标不存在返回空。 |
|
||
|
->> |
object-json(b) |
text |
text |
通过键获得值。不存在则返回空 |
|
||
|
#> |
container-json (b) |
text[] |
json |
获取在指定路径的JSON对象,路径不存在则返回空。
说明:
DWS对象标识符支持以符号"#"结尾,为避免a#>b解析过程出现歧义,因此操作符"#>"前后需要增加空格,否则解析报错。 |
|
||
|
#>> |
container-json (b) |
text[] |
text |
获取在指定路径的JSON对象,路径不存在则返回空。 |
|
|
操作符 |
右操作类型 |
返回类型 |
描述 |
示例 |
||
|---|---|---|---|---|---|---|
|
= |
jsonb |
bool |
判断两个jsonb的大小关系。同函数jsonb_eq |
|
||
|
<> |
jsonb |
bool |
判断两个jsonb的大小关系。同函数jsonb_ne |
|
||
|
< |
jsonb |
bool |
判断两个jsonb的大小关系。同函数jsonb_lt |
|
||
|
> |
jsonb |
bool |
判断两个jsonb的大小关系。同函数jsonb_gt。 |
|
||
|
<= |
jsonb |
bool |
判断两个jsonb的大小关系。同函数jsonb_le。 |
|
||
|
>= |
jsonb |
bool |
判断两个jsonb的大小关系。同函数jsonb_ge。 |
|
||
|
? |
text |
bool |
键/元素的字符串是否存在JSON值的顶层 |
|
||
|
?| |
text[] |
bool |
这些数组字符串中的任何一个是否作为顶层键存在。 |
|
||
|
?& |
text[] |
bool |
是否所有这些数组字符串都作为顶层键存在。 |
|
||
|
<@ |
jsonb |
bool |
左边的JSON的所有项是否全部存在于右边JSON的顶层。 |
|
||
|
@> |
jsonb |
bool |
左边的JSON的顶层是否包含右边JSON的顶层所有项。 |
|
||
|
|| |
jsonb |
jsonb |
两个jsonb对象合并成一个。 |
|
||
|
- |
text |
jsonb |
删除jsonb对象删除指定的键值对。 |
|
||
|
- |
text |
jsonb |
删除jsonb对象删除指定的键值对。 |
|
||
|
- |
int |
jsonb |
删除jsonb数组中下标对应的元素。 |
|
||
|
#- |
text[] |
jsonb |
删除jsonb对象中路径对应的键值对。 |
|