0

所以希望这不是一个非常困难的问题。我环顾四周,但未能找到答案。基本上,我在只读数据库中有一个表,我试图使用 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 = 未知”,我不知道如何继续.

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

4

1 回答 1

2

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

您可以尝试以下方法(相关文档):

case f.status->>'value'
    when 'true' then 'Yes'
    when 'false' then 'No'
end
as "Subscribed"
于 2019-03-02T01:57:34.327 回答