我如何在PostgreSQL中使用jsonb数组条目在表上创建视图

问题描述 投票:0回答:1

我知道有很多类似的问题,但是我仍然找不到我的明确问题。

我有一个看起来像这样的postgres表:

|---------------------|----------------------------------------|-------------------------|
|           id        |                    data                |       timestamp         |  
|---------------------|----------------------------------------|-------------------------|
|          1          |  [{"key1": "value1", "key2":value2"}   |   2020-06-09 13:15:00   |               
|                     |   ,{"key1": "value1", "key2":value2"}] |                         |
|---------------------|----------------------------------------|-------------------------|
|          2          |  [{"key1": "value1", "key2":value2"}   |   2020-06-09 13:20:00   |               
|                     |   ,{"key1": "value1", "key2":value2"}] |  

我想在此表上创建一个视图,以便jsonb数据列中的每个键值都具有自己的列。

我分别使用json_array_elements和json_b每个函数,但毕竟无法使它正常工作。

在最佳情况下,将使用任意数量的keyName通常生成此视图。

非常感谢您的帮助:)

database postgresql view jsonb
1个回答
0
投票

我想我已经找到了目前可以使用的解决方案:

    CREATE VIEW viewX as
        SELECT id, 
               messStellen ->> 'uuid' as uuid
        FROM (
            WITH 
            A AS (
            SELECT
                Id
               ,jsonb_array_elements(data) AS messStellen
            FROM "3"
            )
            SELECT *
            FROM A
            ) x

但是,如果有人能指出正确的方向,我将如何将这样的查询模板化以适用于数据字段可能由带有其他键的json对象组成的表,我将不胜感激。

© www.soinside.com 2019 - 2024. All rights reserved.