首页 > 解决方案 > postgres 在 JSON 数组中提取多个值

问题描述

我有一个表,其中一列是 JSON 数组。每个键都有多个值。

所以我使用这个查询来选择 JSON

select  x.cola eventid, x.colb
from special_event_conflicts t
cross join lateral json_each(t.eventid) as x(cola, colb)

产生

"525947";"{"f1":133,"f2":2428,"f3":"MULTILINESTRING((1013339.30779158 180228.160778359,1013395.51179424 180119.844273224))"}"

我想要的是能够将 f1,f2,f3 值选择到自己的列中

标签: sqljsonpostgresql

解决方案


点击:demo:db<>fiddle

最简单的方法是使用->>运算符:

SELECT 
    x.event_id,
    x.colb ->> 'f1' as f1,
    x.colb ->> 'f2' as f2,
    x.colb ->> 'f3' as f3
FROM <YOUR QUERY>

推荐阅读