这是一个简单的问题,但我现在不知道该怎么做。
我在搜索查询中有一个日期字段。查询不是动态的,否则这会更容易。我需要能够返回与输入日期匹配的记录,或者如果未输入日期,则应返回所有记录。
这就是我所拥有的,但它不起作用。无论是否存在条件,它都不会返回任何行。
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)
它适用于我能够对其进行的少数测试。如果有人可以建议更好的方法,请这样做。
谢谢!
你有没有尝试过:
AND ( (table.dateField = p_dateField AND NOT(p_dateField is NULL))
OR p_dateField is NULL)
我假设 p_dateField 是日期参数