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对象,路径不存在则返回空。
说明:
GaussDB(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对象中路径对应的键值对。 |
|