根据字段是否为NULL构建WHERE子句

时间:2013-06-27 00:32:15

标签: sql oracle where-clause

我有一个函数在WHERE子句中有一个条件,它将字段(DATE类型)与传递给函数的日期进行比较。

有时日期字段为NULL。当发生这种情况时,我希望比较始终返回true。

我目前想出的是:

WHERE NVL(table.from_date, TO_DATE('01-JAN-1900')) <= TO_DATE(input_date)

有没有更好的方法来实现这一目标?例如,根据WHEREtable.from_date来构建NULL子句。如果table.from_dateNULL,则WHERE子句为table.from_date <= TO_DATE(input_date);否则WHERE子句不存在。

1 个答案:

答案 0 :(得分:4)

一种选择是使用NULL添加OR支票:

WHERE (table.from_date IS NULL 
      OR table.from_date <= TO_DATE(input_date))

这样,如果from_date为null,它将评估为true。