ITPub博客

首页 > 数据库 > 国内数据库 > YashanDB JSON_QUERY函数

YashanDB JSON_QUERY函数

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-06-09 18:51:54 0 删除 编辑

JSON_QUERY函数将基于json_path所描述的路径对json_value进行检索,并将检索到的结果按照format_clause定义的显示选项进行封装并打印。

json_value

json_value为一个二进制 json数据,可通过 JSON函数获取。当json_value为NULL时,函数返回NULL。

FORMAT JSON

用于语法兼容,无实际含义,可省略。

json_path

路径表达式,为一个常量字符串,其格式定义请参考 json文档中描述。

returning_clause

参见 json_serialize中returning_clause描述。

PRETTY

参见 json_serialize中PRETTY描述。

wrapper_clause

指定是否将检索结果封装为一个 JSON Array类型数据,其中WITH [ARRAY] WRAPPER表示封装,WITHOUT [ARRAY] WRAPPER表示不封装。

本语句省略时,默认为WITHOUT ARRAY WRAPPER不封装。

在如下两种情况中,必须指定WITH [ARRAY] WRAPPER进行封装,否则函数将返回错误。

  • 函数根据当前路径表达式查询得出的结果包含多个值。
  • 路径表达式末尾指定了json_function_step。

示例

SELECT JSON_QUERY(JSON('{"key4":-0.123,"key5":"test"}'),'$') res FROM DUAL;RES                                             
---------------------------------------------------------------- {"key4":-0.123,"key5":"test"}      
SELECT JSON_QUERY(JSON('{"a":{"a":{"a":1}}}'), '$.."a"' WITH ARRAY WRAPPER) res FROM DUAL;RES                                             
---------------------------------------------------------------- [{"a":{"a":1}},{"a":1},1]     SELECT JSON_QUERY(JSON('{"1":1,"2":2,"3":3}'), '$."1"') res FROM DUAL;RES                                             
---------------------------------------------------------------- 1      --创建用于存储json数据的表table_jsonCREATE TABLE IF NOT EXISTS table_json (id INT, c1 VARCHAR(300));INSERT INTO table_json VALUES(0, '{"key1": 123, "key2": true, "key3": null, "key4": [456, false, null, {"key1": true, "key2": 789, "key3": {"key6": 123}}, [10, false, null]], "key5": {"key1": true, "key2": 789, "key3": null}}');SELECT JSON_QUERY(JSON(c1), '$.key4[last]') res FROM table_json ORDER BY id;RES                                            
---------------------------------------------------------------- [10,false,null] SELECT JSON_QUERY(JSON(c1), '$.key4[0]' WITH WRAPPER) res FROM table_json ORDER BY id;RES                                             
---------------------------------------------------------------- [456]  SELECT JSON_QUERY(JSON(c1), '$[0].key4[0][0][0]' WITH WRAPPER) res FROM table_json ORDER BY id;RES                                             
---------------------------------------------------------------- [456]


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3087128/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639739