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对象,路径不存在则返回空。 说明: DataArts Fabric SQL对象标识符支持以符号"#"结尾,为避免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对象中路径对应的键值对。 |
|