Oracle OR语句

时间:2017-11-09 15:57:22

标签: oracle

我需要选择ACTUAL_END_DATE为空的记录,或者在运行查询时的日期不超过90天。

这是我尝试过使用但它返回太多记录,似乎忽略了OR子句

CU.ACCOUNT_TYPE = 'C' AND ((C.ACTUAL_END_DATE IS NULL) OR (C.ACTUAL_END_DATE <= (SYSDATE + 90)))

非常感谢任何帮助。

基思

1 个答案:

答案 0 :(得分:1)

如果您提供一个不应该返回的记录示例,那会更容易,但是。

话虽如此:

&#34;在运行查询时不超过90天。&#34;

表示您需要SYSDATE - ACTUAL_END_DATE /小于或等于/ 90,不大于或等于90的项目。

正如所写,假设将来没有结束日期,您将获得已经结束的所有记录(因为任何结束日期将小于或等于SYSDATE,并且90变为多余的)。

如果是这种情况,你想要的是:

CU.ACCOUNT_TYPE = 'C' AND ((C.ACTUAL_END_DATE IS NULL) OR (C.ACTUAL_END_DATE >= (SYSDATE - 90)))