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对象中路径对应的键值对。 |
|

