【发布时间】:2022-01-17 01:40:59
【问题描述】:
尝试编写一个查询来检查一列是否等于某个值。如果是这样,取日期列的值,然后减去某个值。
查询如下所示:
select
v.voyage "Voyage"
,v.service "Service"
,to_char(vp.eta_date, 'MONTH dd, yyyy') "ETA"
,case
when v.service = "USA" then to_char(vp.eta_date, 'MONTH dd, yyyy') - 2
else 'n/a'
end as 'Notice'
from
table
// bunch of joins
当我运行上述代码时,我收到一条错误消息:
FROM keyword not found where expected
错误指向“通知”一词。
我基本上想检查服务是否等于“美国”,如果是,使用 eta_date 减去 2 来给我在通知列中的日期。
如果不是,那么就在“通知”列中显示“N/A”。
我做错了什么,我该如何解决?
【问题讨论】:
-
如果
"USA"是一个文字值,它应该用单引号括起来,如'USA'。 -
进行更新后我仍然遇到同样的错误。
-
我刚刚将“通知”的结尾更新为文字。现在我收到以下错误:“不一致的日期类型:expteced NUMBER got CHAR