我有一个记录表,并且一列包含记录变为非活动状态时的值。 大部分记录仍处于打开状态,因此不会在end_date
列中保留任何值。Oracle:SELECT如果日期不是零,则等于空
我想选择所有这些仍然有效的记录。一种方法来实现这一点(从我的头顶上):
select *
from table t
where nvl(t.end_date, to_date('2099-DEC-31', 'MM-DD-yyyy')) > sysdate
但它感觉不对。有没有更好的方法来实现我想要的?
编辑:BTW,该表是不是巨大的,是不会成长:)
这是常用的......而且,你甚至可以创建一个'NVL()'表达功能的索引,使之更快。 (如果并且只有当你需要这种优化时) – ppeterka
这是不正确的,因为是'MM-DD-yyyy'。应该是'yyyy-mon-dd'。 :) –
@弗洛林Ghita - *我的头顶。 – hogni89