所以希望这不是一个超级困难的问题。我环顾四周,但找不到答案。基本上,我在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”,我被绊倒了如何进行。
这里的任何帮助将不胜感激。
答案 0 :(得分:2)
该错误表示f.status
的类型为json
,您正在尝试将其与字符串进行比较,这是行不通的。
您可以尝试以下方法(与documentation相关):
case f.status->>'value'
when 'true' then 'Yes'
when 'false' then 'No'
end
as "Subscribed"