我有两组日期范围可供我过滤 - 日期设置A和日期设置B.
我需要我的查询工作如下: 如果日期集A为空,则使用日期集B. 如果日期集B为空,请使用日期集A.
两个日期集都是传递给查询的参数。任何一组都可以通过,但不能同时通过。
两个日期集都是同一个表中的列。日期集A将根据表中的列A进行过滤,日期集B将根据列B进行过滤。
我的理解是在where子句中需要一个案例,但我似乎无法正确理解 - 可能是因为我缺乏PL / SQL知识。
这是我能得到的最接近的:
BigInteger
答案 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)