Можно ли вернуть массив массивов jsonb как табличный объект?Размер внутренних массивов будет , а не всегда одинаковым.Используется версия Postgres 9.6.6.
Пример jsonb:
{
"r": [
{
"n": "name",
"rcs": [
[
{
"v": "1",
"vt": 9
},
{
"v": "2",
"vt": 9
},
{
"v": "3",
"vt": 9
}
],
[
{
"v": "4",
"vt": 9
},
{
"v": "5",
"vt": 7
}
]
]
}
]
}
Ожидаемая таблица
+------+------+--------+
| Col1 | Col2 | Col3 |
+------+------+--------+
| 1 | 2 | 3 |
| 4 | 5 | Null |
+------+------+--------+
Ширина возвращаемой таблицы будет определяться по макс.длина всех рядов.Лишние столбцы для более коротких строк будут иметь нулевые значения.
Я совершенно новичок в Postgres, и даже не знаю, с чего начать.Это было так далеко, как я получил:
select c from someTable,
jsonb_array_elements(data -> 'r') r,
jsonb_array_elements(r -> 'rcs') c
WHERE r->> 'n' = 'name'