【发布时间】:2020-05-01 13:33:56
【问题描述】:
我有一个日期列,需要检查以下场景的几个条件.. 但看起来我做错了什么并因此出错
scenario:
If EmpBonusDate column is null or
if (sysdate-EmpBonusDate >= some constant number) then return 1 else 0
-- 我将 (sysdate-EmpBonusDate) 的输出乘以 24,所以我可以得到一个可以比较的数字以检查 >= 条件为常数。
这就是我的 sql 的样子
Select count(1) from employee emp where
Emp.IsActive = '1'
and (sysdate - emp.EmpBonusDate) * 24 >= 30 -- this works
-- or nvl(emp.EmpBonusDate,1) -- if I add or clause, I get [ORA-00920] invalid relational operator error....
任何线索我做错了什么以及如何获得上述场景的 1 或 0
【问题讨论】:
-
你能和
Emp.IsActive = '1' and ((sysdate - emp.EmpBonusDate) * 24 >= 30 or emp.EmpBonusDate is null)一起试试吗? -
出现错误或不提取行?
-
@WoAiNii - 您可以将此作为答案发布.. 我会接受它.. 按预期工作..
标签: sql plsql oracle-sqldeveloper