首页 > 解决方案 > 是否可以从此查询中获得结果?

问题描述

请查看查询,尝试从数据库中实现嵌套 json。

select JSON_OBJECT( 
           KEY 'objects' VALUE 
               (SELECT JSON_ARRAYAGG( 
                         JSON_OBJECT( 
                           KEY 'object_type' VALUE object_type, 
                           KEY 'object_name' VALUE object_name 
                         ) 
                       ) 
               ) 
         ) 

  from Table name;

(上面试过没有得到我需要的东西)

我正在尝试实现嵌套的 JSON。目前我正在使用 Java 中的 map 和 stream 来实现,并想知道我是否可以直接从查询中得到它。

谢谢

标签: sqljsonoracle

解决方案


JSON_OBJECT()对于您的情况,函数不需要嵌套在JSON_ARRAYAGG()函数中。所以,考虑:

SELECT JSON_OBJECT( KEY t.object_name 
                    VALUE JSON_ARRAYAGG( t.object_type ORDER BY t.object_name ) ) 
                    as objects
  FROM t
 GROUP BY t.object_name;

Demo

Referance


推荐阅读