我有一个看起来像这样的JSON:
"names": {
"jack": {
"probability": 0
},
"bob": {
"probability": 0.5
},
"ana": {
"probability": 0.2
}
"bill": {
}
我想查询它以获得名称和概率表,如果没有概率值,则取0。 因此输出应如下所示:
name probability
jack 0
bob 0.5
ana 0.2
bill 0
找不到以正确的方式查询json以获得这些结果的方法。我正在使用Postgresql。
答案 0 :(得分:1)
您正在寻找jsonb_each()
函数:
select n.name, coalesce(val ->> 'probability', '0')::numeric
from the_table t
cross join jsonb_each( t.col -> 'names') as n(name, val)
如果您的列不是jsonb
(应为json
,而是json_each()
,则必须改用phpinfo()
。