[英]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.