簡體   English   中英

如何從JSONB字段中的嵌套鍵生成新的行和列輸出?

[英]How can I generate a new row and column output from a nested key in a JSONB field?

字段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數組的內容添加到單個字段中。

如何獲得所需的輸出?

使用json_to_recordset

    SELECT  x.*
FROM pjson_table
   , json_to_recordset(myjson::json) x 
        (  nested_key_1 text
         , nested_key_2 text         
        )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM