我试着用postgresql 9.4jsonb来概括我的想法,并希望能得到一些帮助来弄清楚如何做到以下几点。
给出以下示例jsonb:

‘{“name1” : value1, “name2” : value2, “name3” : [int1, int2, int3] }’::jsonb AS table1.column1

需要:只返回“name3”数组,作为返回签名为的表
TABLE( var_name varchar, var_value int, var_row_num int)

因此得到的数据如下所示:
(‘name3’, int1, 1)
(‘name3’, int2, 2)
(‘name3’, int3, 3)

假设数组可以是除0以外的任何长度,并且保证“NAME3”存在。

最佳答案

您可以使用json_array_elements来运行json array的结果

SELECT 'name3' ,json_array_elements(column1->'name3')
FROM table1;

结果
(‘name3’, int1)
(‘name3’, int2)
(‘name3’, int3)

10-08 14:29