表有 2 个数组列键和值。 对于EG:
需要将键映射到值并将其拆分为单独的列
最佳答案
您可以将两个字符串转换为数组,取消数组的嵌套,并将这些键/值对聚合回 JSON 值。然后可以使用该值再次提取四个 key :
select id,
cols ->> 'a' as a,
cols ->> 'b' as b,
cols ->> 'c' as c,
cols ->> 'd' as d
from (
select id,
(select jsonb_object_agg(k,v)
from unnest(string_to_array(key,','),
string_to_array(value, ',')) as x(k,v)) as cols
from the_table
) x
order by id;
我可能会创建一个函数来使代码更容易阅读。
关于sql - Postgresql 如何将两个数组列拆分并映射为单独的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75960285/