очередь лежит некоторый список.
Хочется получить юнион элементов списков для всех строк таблицы.
with
test as (select '[{"a":1,"b":"foo"},{"a":"2","c":"bar"}]' aaa union all select '[{"a":4,"b":"foo"},{"a":"5","c":"bar"}]'),
test2 as (select * from json_to_recordset(
(select * from test)--!!!!!!!!!!!!!!!!!!!!!
) as x(a int))
select * from test2
Вот я хотел бы чтобы этот запрос возвращал 4 строки со значениями в одной колонке 1, 2, 4, 5.
Но так конечно нельзя.
Я могу построить один большой джейсон -массив, в который сложить все джейсоны, и потом слепить из них то что мне нужно. Но это попахивает.
Как принято такую задачу решать у культурных людей?
почему нельзя? # with test(j) as (select '[{"a":1,"b":"foo"},{"a":"2","c":"bar"}]'::json aaa union all select '[{"a":4,"b":"foo"},{"a":"5","c":"bar"}]'), test2 as (select a from test, json_to_recordset(j) as x(a int)) select * from test2; a --- 1 2 4 5 (4 rows)
Обсуждают сегодня