postgresql 从jsonb中提取值并合并到数据集行

at0kjp5o  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(162)

表ABC

x1c 0d1x的数据
我有一个PostgreSQL表,上面的结构有一个JSONB列。我使用Spring JDBC来检索数据。有没有一种方法可以使用SQL查询来获取下面结构中的行相关数据。

ColumnA|ColumnB|ColumnC|Output Field 1|Output Field 2|
123    |3434   |123    |100           |12            |
34     |56     |656    |1100          |22            |

字符串
我尝试使用方法jsonb_to_record(),但没有成功。

SELECT * FROM
    tableABC,jsonb_to_record(
                columnJsonB->'Output Fields'
        ) AS x(Output Field 1 TEXT, Output Field 2 TEXT)

编辑-

正如@Bergi提到的,jsonb_to_record也可以工作,有适当的引号。

SELECT * FROM
        tableABC,jsonb_to_record(
                    columnJsonB->'Output Fields'
            ) AS x("Output Field 1" TEXT, "Output Field 2" TEXT)

8xiog9wr

8xiog9wr1#

你需要做的就是使用操作符->'Output Fields'提取为JSON,然后应用->>以文本的形式获得字段1和2:

select ColumnA, ColumnB, ColumnC, 
       columnJsonB->'Output Fields'->>'Output Field 1' as "Output Field 1",
       columnJsonB->'Output Fields'->>'Output Field 2' as "Output Field 2"
from tableABC

字符串

相关问题