Postgres JSON阵列元素和空返回



i Postgres中的表中有一个JSON列,其中包含一系列对象,例如

{"BlockData":[{"Name":"George","Age":"54","Height":"1.75"}, {"Name":"Mario","Age":"35","Height":"1.90"}]}

我正在使用选择查询,并希望访问名称对象和名称的值对(George and Mario)。我要尝试的是以下内容:

select jsonb_array_elements(jsondoc_->'BlockData')->>'Name' from BlockData;

我得到的回报是

"ERROR:  cannot extract elements from a scalar
SQL state: 22023"

我能发现的是,这个问题是因为在某些行中返回为null。您能建议我如何重叠这个问题吗?

您是否尝试过滤它们?

t=# with t(jsondoc_) as (values('{"BlockData":[{"Name":"George","Age":"54","Height":"1.75"}, {"Name":"Mario","Age":"35","Height":"1.90"}]}'::jsonb),('{"BlockData":null}'))
select jsonb_array_elements(jsondoc_->'BlockData')->>'Name' from t
where jsondoc_->'BlockData' <> 'null';
 ?column?
----------
 George
 Mario
(2 rows)

相关内容

  • 没有找到相关文章

最新更新