我有一个函数在WHERE
子句中有一个条件,它将字段(DATE
类型)与传递给函数的日期进行比较。
有时日期字段为NULL
。当发生这种情况时,我希望比较始终返回true。
我目前想出的是:
WHERE NVL(table.from_date, TO_DATE('01-JAN-1900')) <= TO_DATE(input_date)
有没有更好的方法来实现这一目标?例如,根据WHERE
是table.from_date
来构建NULL
子句。如果table.from_date
为NULL
,则WHERE
子句为table.from_date <= TO_DATE(input_date)
;否则WHERE
子句不存在。
答案 0 :(得分:4)
一种选择是使用NULL
添加OR
支票:
WHERE (table.from_date IS NULL
OR table.from_date <= TO_DATE(input_date))
这样,如果from_date为null,它将评估为true。