我试着用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)