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

Так что, надеюсь, это не супер сложный вопрос.Я оглянулся, но не смог найти ответ.По сути, у меня есть таблица в базе данных 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 Ответ

0 голосов
/ 02 марта 2019

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

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

case f.status->>'value'
    when 'true' then 'Yes'
    when 'false' then 'No'
end
as "Subscribed"
...