• 人大金仓分析型数据库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 对象
  • 相关阅读:
    c++ | json库的使用 | josn静态库生成
    Ajax--form表单与模板引擎--模板引擎的基本概念 - art-template模板引擎
    (附源码)python房屋租赁管理系统 毕业设计 745613
    IIS解析漏洞复现
    HDU 6514 - Monitor(前缀和与差分)
    【图像分类】2022-MPViT CVPR
    华为认证云计算专家(HCIE-Cloud Computing)--判断题
    JVM(3)
    游戏 NFT 市场:Opensea 最容易切的蛋糕
    CCF CSP认证 历年题目自练Day26
  • 原文地址:https://blog.csdn.net/qq_27889005/article/details/133267557