Возможно ли получить результат по этому запросу? - PullRequest
0 голосов
/ 10 января 2020

пожалуйста, просмотрите запрос, пытаясь получить вложенный 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 для достижения и хотел бы знать, могу ли я получить его прямо из запроса.

Спасибо

Ответы [ 2 ]

1 голос
/ 11 января 2020
Функция

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;

Демо

Ссылка

1 голос
/ 11 января 2020

Не могу проверить, но я думаю:

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

  from Table name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...