Как запросить столбец PostgreSQL JSON для определенного типа значения? - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть таблица responses, в которой есть столбец JSON value.value столбец должен быть массивом текстовых значений, например так:

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

Однако ошибка в связанном приложении привела к тому, что некоторые из этих значений были сохранены в виде строкиПример:

"Value One"

Есть ли способ запросить в этом столбце только текстовые / строковые типы, чтобы я мог исправить неправильные записи?

1 Ответ

0 голосов
/ 07 декабря 2018

Используйте функцию 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) 
...