如何在postgres中从jsonb列检索多个数据?

如何在postgres中从jsonb列检索多个数据?,json,regex,postgresql,Json,Regex,Postgresql,在PostgreSQL数据库中,我有一个名为json的json列。内部数据如下所示: { "Version": "0.0.0.1", "Items": [ { "Id": "40000000-0000-0000-0000-000000141146", "Name": "apple"

在PostgreSQL数据库中,我有一个名为
json
的json列。内部数据如下所示:

{
    "Version": "0.0.0.1",
    "Items": [
        {
            "Id": "40000000-0000-0000-0000-000000141146",
            "Name": "apple",
            "Score": 64,
            "Value": 1430000
        },
        {
            "Id": "40000000-0000-0000-0000-000000141147",
            "Name": "grapefruit",
            "Score": 58,
            "Value": 1190000
        },
        {
            "Id": "40000000-0000-0000-0000-000000141148",
            "Name": "mango",
            "Score": 41,
            "Value": 170000
        }
    ]
}
我想做的是从
项目
元素中检索所有
分数
数据

我尝试使用SQL代码:

select
substring(json ->> 'Items' from '"Score": (\d*),') as score
from vegetables;
然而,它只返回第一个元素的分数,而不是3。我试图使用“\g”标志,它应该全局查找所有结果,但代码不起作用


有人能建议如何正确地做到这一点吗?提前谢谢

考虑到
json
字段的数据类型是
jsonb
,则无需使用子字符串或正则表达式,只需使用
jsonb_数组_元素
进行横向连接即可。尝试下面的查询

select x->>'Score' "Score" from vegetables 
cross join lateral jsonb_array_elements(json->'Items') x

欢迎来到SO。您还应该添加所需的输出。