[英]Oracle: SELECT where date is less if not equals null
我有一张记录表,当记录变为非活动状态时,一列保存该值。 大多数记录仍处于打开状态,因此end_date
列中没有任何值。
我想选择所有仍处于活动状态的记录。 一种实现此目的的方法(从我的头开始):
select *
from table t
where nvl(t.end_date, to_date('2099-DEC-31', 'MM-DD-yyyy')) > sysdate
但这感觉不对。 有没有更好的方法来实现我想要的?
编辑:顺便说一句,表不是很大,并且不会增长:)
select *
from table t
where nvl(t.end_date, to_date('2099-DEC-31', 'MM-DD-yyyy')) > sysdate
不会使用基于非函数的“正常”索引,因此可能会损害性能。
您可以像查询
select *
from table t
where t.end_date > sysdate OR t.end_date is null
代替
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.