1

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

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

我目前想出的:

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

有没有更好的方法来实现这一点?例如,WHERE基于是否table.from_date是构建一个子句NULL。If table.from_dateis NULLthenWHERE子句是table.from_date <= TO_DATE(input_date); 否则该WHERE子句不存在。

4

1 回答 1

4

一种选择是添加NULL检查OR

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

这样,如果 from_date 为空,它将评估为真。

于 2013-06-27T00:36:57.953 回答