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"