【发布时间】:2021-09-28 14:32:50
【问题描述】:
我们在查询中使用下面的condition
AND TRUNC(SYSDATE) BETWEEN NVL( pap.effective_start_date, SYSDATE - 1 )
AND NVL( pap.effective_end_date, SYSDATE + 1 )
如何在不使用BETWEEN 的情况下重写查询?
【问题讨论】:
-
一种“更好”的方法是使用
(+)放弃专有的外部连接,甚至 Oracle 也推荐。但是使用>=和<通常更适合日期/时间值,但由于您需要coalesce(),因此即使使用它也不可能使用索引。 -
你肯定会删除。你能建议介于两者之间吗?
-
删除
between想要达到什么目的。如前所述,coalesce将禁用索引/分区访问,因此任何转换都不会提供任何改进
标签: sql oracle oracle11g oracle12c