postgresql-使用情况下,用引号将字符串转换为不同的字符串



,希望这不是一个超级困难的问题。我环顾四周,但找不到答案。基本上,我在只读的DB中有一个表格,我正在尝试使用一个案例语句将存储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",我被困在如何进行。

这里的任何帮助将不胜感激。

该错误意味着f.status是类型json,并且您正在尝试将其与不起作用的字符串进行比较。

您可以改用以下(相关文档):

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

最新更新