搜索查询中的日期为空

gsw*_*son 3 oracle

这是一个简单的问题,但我现在不知道该怎么做。

我在搜索查询中有一个日期字段。查询不是动态的,否则这会更容易。我需要能够返回与输入日期匹配的记录,或者如果未输入日期,则应返回所有记录。

这就是我所拥有的,但它不起作用。无论是否存在条件,它都不会返回任何行。

AND ( (table.dateField = p_dateField) 
   OR (table.dateField = table.dateField and table.dateField is null))
Run Code Online (Sandbox Code Playgroud)

提前致谢。

经过一个小时的研究,我想出了这个:

and (  
      ( p_dateField IS NOT NULL AND table.dateField = p_dateField)
         OR ( p_dateField IS NULL AND (table.dateField is null or (table.dateField is not null))
     )
Run Code Online (Sandbox Code Playgroud)

它适用于我能够对其进行的少数测试。如果有人可以建议更好的方法,请这样做。

谢谢!

Sim*_*n S 5

你有没有尝试过:

AND ( (table.dateField = p_dateField AND NOT(p_dateField is NULL)) OR p_dateField is NULL)

我假设 p_dateField 是日期参数