提取复合类型的所有组件?

时间:2015-05-06 19:18:17

标签: json postgresql

如果我跑:

with fields as (
    select jsonb_each_text(jsonb_array_elements('[
        {"a":1},
        {"b":2},
        {"c":3}]')) x
)
select (x).key, (x).value from fields;

我明白了:

 key | value 
-----+-------
 a   | 1
 b   | 2
 c   | 3
(3 rows)

这很好用,但我正在寻找一种方法来提取这些字段(keyvalue)而无需手动指定它们。换句话说,我可以直接从内部查询扩展复合类型值,而无需单独命名我要提取的部分(keyvalue)吗?这类似于ROW函数的反转(从单个vaues创建复合类型)...

1 个答案:

答案 0 :(得分:1)

这个怎么样?

with fields as (
    select json_each_text(json_array_elements('[
        {"a":1},
        {"b":2},
        {"c":3}]')) x
)
select (x).* from fields;