GBase 8c 函数和操作符 - JSON/JSONB函数和操作符

本文详细介绍了GBase 8c数据库中针对JSON和JSONB数据类型的函数和操作符,包括提取路径、转换、拆分、聚合等功能。例如,`json_extract_path`用于根据指定路径提取JSON对象的值,`json_array_elements`用于拆分JSON数组,而`jsonb_contained`和`jsonb_contains`则用于判断JSONB对象之间的包含关系。此外,还提供了丰富的示例展示如何使用这些函数和操作符。
摘要由CSDN通过智能技术生成

                                                                                                                             表  JSON/JSONB 通用操作符

操作符

左操作数类型

右操作数类型

返回类型

描述

例子

例子结果

->

Array-json(b)

int

json(b)

获得array-json元素。下标不存在返回空。

'[{“a”:“foo”},{“b”:“bar”},{“c”:“baz”}]'::json->2

{“c”:“baz”}

->

object-json(b)

text

json(b)

通过键获得值。不存在则返回空。

'{“a”: {“b”:“foo”}}'::json->'a'

{“b”:“foo”}

->>

Array-json(b)

int

text

获得 JSON 数组元素。下标不存在返回空。

'[1,2,3]'::json->>2

3

->>

object-json(b)

text

text

通过键获得值。不存在则返回空。

'{“a”:1,“b”:2}'::json->>'b'

2

#>

container-json (b)

text[]

json(b)

获取在指定路径的 JSON 对象,路径不存在则返回空。

'{“a”: {“b”:{“c”: “foo”}}}'::json #>'{a,b}'

{“c”: “foo”}

#>>

container-json (b)

text[]

text

获取在指定路径的 JSON 对象,路径不存在则返回空。

'{“a”:[1,2,3],“b”:[4,5,6]}'::json #>>'{a,2}'

3

注意:

对于 #> 和 #>> 操作符,当给出的路径无法查找到数据时,不会报错,会返回空。

                                                                     表  JSONB额外支持操作符

操作符

右操作数类型

描述

例子

@>

jsonb

左边的 JSON的顶层是否包含右边JSON的顶层所有项。

'{“a”:1, “b”:2}'::jsonb @> '{“b”:2}'::jsonb

<@

jsonb

左边的 JSON的所有项是否全部存在于右边JSON的顶层。

'{“b”:2}'::jsonb <@ '{“a”:1, “b”:2}'::jsonb

?

text

键/元素的字符串是否存在于 JSON 值的顶层。

'{“a”:1, “b”:2}'::jsonb ? 'b'

?|

text[]

这些数组字符串中的任何一个是否做为顶层键存在。

'{“a”:1,“b”:2,“c”:3}' ::jsonb ? | array['b', 'c']

?&

text[]

是否所有这些数组字符串都作为顶层键存在。

'[“a”, “b”]'::jsonb ?& array['a', 'b']

=

jsonb

判断两个jsonb的大小关系,同函数jsonb_eq。

/

<>

jsonb

判断两个jsonb的大小关系,同函数jsonb_ne。

/

<

jsonb

判断两个jsonb的大小关系,同函数jsonb_lt。

/

>

jsonb

判断两个jsonb的大小关系,同函数jsonb_gt。

/

<=

jsonb

判断两个jsonb的大小关系,同函数jsonb_le。

/

>=

jsonb

判断两个jsonb的大小关系,同函数jsonb_ge。

/

JSON/JSONB支持的函数

  •  array\_to\_json\(anyarray \[, pretty\_bool\]\)

描述:返回JSON类型的数组。一个多维数组成为一个JSON数组的数组。如果pretty\_bool为true,将在一维元素之间添加换行符。

返回类型:json

示例:

 gbase=# SELECT array_to_json('{ {1,5},{99,100}}'::int[]);

    array_to_json

    ------------------

    [[1,5],[99,100]]

    (1 row)

  •  row\_to\_json\(record \[, pretty\_bool\]\)

描述:返回JSON类型的行。如果pretty\_bool为true,将在第一级元素之间添加换行符。

返回类型:json

示例:

 gbase=# SELECT row_to_json(row(1,'foo'));

     row_to_json

---------------------

 {"f1":1,"f2":"foo"}

(1 row)

  •  json_array_element(array-json, intege
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值