Postgres jsonb到表

时间:2019-09-24 16:48:21

标签: postgresql multidimensional-array

是否可以将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'

0 个答案:

没有答案