[英]postgres extract JSON column key and values to separate columns
我有一个表,其中有一列是由
json_object_agg(eventid,date_now_range) eventids_range
这就是数据存储在表中的样子
{ "527813" : 184, "525947" : 133, "529957" : 178, "531490" : 143 }
我想选择这条记录并让键和值成为它自己的记录
所以这
select eventids_range from special_event_conflicts
会返回这样的东西
col a col b
527813 184
525947 133
529957 178
531490 143
这是一种选择:
select k.cola, v.colb
from mytable t
cross join lateral json_object_keys(t.eventids_range) as k(cola)
cross join lateral json_extract_path_text(t.eventids_range, k.cola) v(colb)
这是通过从物体使用第一提取密钥json_object_keys()
然后用访问对应的值json_extract_path_text()
cola | colb :----- | :--- 527813 | 184 525947 | 133 529957 | 178 531490 | 143
另一个 - 可能更好 - 解决方案是使用json_each()
:
select x.cola, x.colb
from mytable t
cross join lateral json_each(t.eventids_range) as x(cola, colb)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.