PostgreSQL - Преобразование строки с кавычками в другую строку, используя регистр?

Надеюсь, это не супер сложный вопрос. Я оглянулся, но не смог найти ответ. По сути, у меня есть таблица в базе данных READ-ONLY, в которой я пытаюсь использовать оператор case для преобразования столбца, в котором хранятся значения JSON (я думаю?), В нечто более визуально приятное.

В таблице показаны электронные письма и статус того, подписаны они или нет на список рассылки.

ПРИМЕР ЗДЕСЬ

В основном мой запрос выглядит примерно так

select
    f.data as "Email",
    (
     case f.status
        when '{"value":true}' then 'Yes'
        when '{"value":false}' then 'No'
        else NULL
     end
     ) as "Subscribed"
from fields f

Когда я запускаю это на моей странице примера, он прекрасно работает, когда установлен на POSTGRES 11, но когда я запускаю его на Metabase, я получаю ошибку "ОШИБКА: оператор не существует: json = unknown", и я озадачен тем, как действовать,

Любая помощь здесь будет принята с благодарностью.

1 ответ

Решение

Эта ошибка означает f.status имеет тип json и вы пытаетесь сравнить его со строкой, которая не работает.

Вместо этого вы можете попробовать следующее (сопутствующая документация):

case f.status->>'value'
    when 'true' then 'Yes'
    when 'false' then 'No'
end
as "Subscribed"
Другие вопросы по тегам