人大金仓分析型数据库JSON函数和操作符

目录

JSON操作符

JSON创建函数

JSON聚合函数


JSON操作符

        对于json和jsonb数据类型,字段、元素和路径提取运算符返回的数据类型与其左侧输入(jsonjsonb)相同,但指定为返回text的数据类型除外,后者将值强制为text。如果JSON输入没有与请求匹配的正确结构,则字段、元素和路径提取运算符返回NULL,而不是失败;例如,如果不存在这样的元素。

操作
右操作 数类型
述描
例子
例子结果
->
int
获得 JSON 数组元素
'[{"a":"foo"},{"b":"bar"},{"c":"baz"}]'::json->2
{"c":"baz"}
->
text
根据键获得 JSON
象的域
'{"a": {"b":"foo"}}'::json->'a'
{"b":"foo"}
->>
int
获得 JSON 数组元素
text 形式
'[1,2,3]'::json->>2
3
->>
text
获得 JSON 对象域的 t ext 形式
'{"a":1,"b":2}'::json->>'b'
2
#>
text[]
获得在指定路径上的 JSON 对象
'{"a": {"b":{"c": "foo"}}}'::json#>'{a,b}'
{"c": "foo"}
#>>
text[]
获得在指定路径上的 JSON 对象的 text 形式
'{"a":[1,2,3],"b":[4,5,6]}'::json#>>'{a,2}'
3
jsonb操作符
操作
右操作数类
描述
例子
@>
jsonb
左边的 json 值包含右边的值
'{"a":1,"b":2}'::jso nb@>'{"b":2}'::js onb
<@
jsonb
JSON 值是否包含在右值
'{"b":2}'::jsonb < @ '{"a":1, "b":2}'::
jsonb
?
text
/ 元素字符串是否存在于 JSON值
'{"a":1,"b":2}'::jso nb ? 'b'
?|
text[]
是否存在这些键 / 元素字符串
'{"a":1, "b":2, "c": 3}'::jsonb ?| array
['b', 'c']
?&
text[]
所有这些键 / 元素字符串都存在
'["a", "b"]'::jsonb ?& array['a', 'b']
jsonb比较运算符
操作符
描述
<
小于
>
大于
<=
小于或等于
>=
大于或等于
=
等于
<> 或者 !=
不等于

JSON创建函数

        此表描述了创建 json数据类型值的函数。

函数
描述
例子
例子结果
to_js on(a nyel eme nt)
返回该值作为一个合法的 JSON 象。 数组和组合会被递归处理并且转换成数组和对象
to_j son( 'Fre d sa id " Hi."': :text )
"Fr ed  sai d\" Hi. \""
arra y_to _jso n(an yarr ay[, prett y_b ool])
返回该数组为一个 JSON 数组
arra y_to _jso n('{{
1,5}, {99, 100} }'::int [])
[[1, 5],[ 99, 10 0]]
row _to_ json (rec ord [ , pre tty_b ool])
返回该行为一个 JSON 对象
row _to_ json (row (1,'f oo'))
{"f 1": 1,"f 2": "fo o"}
json _bui ld_a rray( VAR IADI C "a ny")
VARIADIC 参数列表构建一个可能是异种类型的 JSON
数组
json _bui ld_a rray(
1,2,' 3',4, 5)
[1, 2, " 3", 4, 5]
json _bui ld_o bject (VA RIA DIC
"any ")
VARIADIC 参数列表构建 JSON 对象
json _bui ld_o bjec t('fo o',1,'
bar', 2)
{"f oo ": 1 , "b ar" : 2}
json _obj ect(t ext[])
从文本数组构建 JSON 对象。数组必须是一维或二维数组
json _obj ect(' {a, 1 , b, " def", c, 3. 5}')
json _obj ect(' {{a, 1},{b , "de f"},{c , 3.5 }}')
json_obj ect(' {{a, 1},{b , "de f"},{c , 3.5 }}') 
json _obj ect(k eys t ext[], valu es te xt[])
从文本阵列中创建 JSON 对象
json _obj ect(' {a, b }', '{1 ,2}')
{"a ": " 1", "b" : "2 "}

JSON聚合函数

        

JSON聚合函数
数函
参数类型
返回类型
描述
json_agg(record)
record
json
将记录聚合为对象的 JSON数组
json_object_agg(name,
value)
("any","a ny")
json
将名称 / 值对聚合为 JSON 对象

你可能感兴趣的:(json)