繁体   English   中英

Oracle:SELECT,如果日期不等于null,则日期更少

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM