Oracle可选过滤器在哪里(此日期设置)或(该日期设置)

时间:2015-08-27 15:02:22

标签: oracle date plsql filter jasper-reports

我有两组日期范围可供我过滤 - 日期设置A和日期设置B.

我需要我的查询工作如下: 如果日期集A为空,则使用日期集B. 如果日期集B为空,请使用日期集A.

两个日期集都是传递给查询的参数。任何一组都可以通过,但不能同时通过。

两个日期集都是同一个表中的列。日期集A将根据表中的列A进行过滤,日期集B将根据列B进行过滤。

我的理解是在where子句中需要一个案例,但我似乎无法正确理解 - 可能是因为我缺乏PL / SQL知识。

这是我能得到的最接近的:

BigInteger

1 个答案:

答案 0 :(得分:0)

SELECT *
  FROM your_table
 WHERE (a IS NULL AND b BETWEEN lower_b_date AND upper_b_date)
    OR (b IS NULL AND a BETWEEN lower_a_date AND upper_a_date)