Postgres JSONB к столу - PullRequest
       15

Postgres JSONB к столу

0 голосов
/ 24 сентября 2019

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