字段JSONB结构:
{
...
"field_name": "field_value",
"columns": [
...
{
"nested_key_1": "nested_value_1"
"nested_key_2": "nested_value_2"
},
{
"nested_key_1": "nested_value_1"
"nested_key_2": "nested_value_2"
},
],
}
所需的输出:
----------------------------------------------
| | nested_key_1 | "nested_key_2" |
----------------------------------------------
| 1 | nested_value_1 | nested_value_2 |
----------------------------------------------
| 2 | nested_value_1 | nested_value_2 |
----------------------------------------------
我为实现这一目标的尝试之一:
select * from (
select cast (
json_array_elements(json_field::json->'columns') as text
) as column_data from table_name
) as temp
但是,这只是将columns数组的内容添加到单个字段中。
如何获得所需的输出?
答案 0 :(得分:1)
使用json_to_recordset
SELECT x.*
FROM pjson_table
, json_to_recordset(myjson::json) x
( nested_key_1 text
, nested_key_2 text
)