如何在PostgreSQL JSON列中查询特定类型的值?

时间:2018-12-07 20:12:50

标签: postgresql jsonb

我有一个表responses,其中有一个JSON列valuevalue应该是文本值的数组,如下所示:

["Value One", "Value Two", "Value Three"]

但是,关联应用程序中的错误导致其中一些值另存为字符串,例如:

"Value One"

是否可以仅在此列中查询文本/字符串类型,这样我才能解决错误的条目?

1 个答案:

答案 0 :(得分:0)

使用功能jsonb_typeof(),例如:

with responses(value) as (
values
    ('["Value One", "Value Two", "Value Three"]'::jsonb),
    ('"Value One"')
)

select *
from responses
where jsonb_typeof(value) <> 'array'

    value    
-------------
 "Value One"
(1 row)