在 where 子句中使用多个条件时关系运算符错误

relational operator error while using multiple condition in where clause

我有一个日期列,需要检查以下情况的几个条件.. 但看起来我做错了什么,因此出现错误

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

使用语法 or nvl(emp.EmpBonusDate,1) 你缺少关系,因为你没有将该值与某物进行比较。

您可以用这个

替换您的where子句
Emp.IsActive = '1' and ((sysdate - emp.EmpBonusDate) * 24 >= 30 or emp.EmpBonusDate is null)

这等同于您的 if 子句。