提取postgresql jsonb对象的所有值

时间:2018-03-05 08:22:26

标签: postgresql jsonb

我有一个postgresql表t1,id整数,数据jsonb

   id    |   data
--------------------
    1    | {"1":{"11":11},"2":{"12":12}}

我需要一个函数来提取单独行中的所有键/值 像这样

   key   |   values
----------------------
    1    |  {"11":11}
    2    |  {"12":12}

在“hstore”dataType中,有“hvals”功能,执行此操作 但在jsonb我找不到类似的功能

1 个答案:

答案 0 :(得分:1)

您正在寻找jsonb_each

with t1 (id, data) as (
  values (1, '{"1":{"11":11},"2":{"12":12}}'::jsonb)
)
select t.*
from t1, jsonb_each(data) as t(k,v)

返回:

k | v         
--+-----------
1 | {"11": 11}
2 | {"12": 12}