select * from a id = @id,日期介于@ date1和@ date2之间 当我通过@ id = 1 @ date1 = '09 / 29/17'和@ date2 = '09 / 30/17' 那么输出是正确的
当我传递@ id = 0(表示没有在表中找到id)@ date1 = '09 / 29/17'和@ date2 = '09 / 30/17'然后输出来自日期和忽略id列< / p>
意味着我希望过滤器像购物网站
答案 0 :(得分:0)
实现此目的的方法是在ID列上使用OR,使SQL看起来像:
SELECT *
FROM a
WHERE (@id=0 OR id=@id)
AND date BETWEEN @date1 AND @date2
您需要小心并注意使用这种方法的方法是,根据您的DBMS,您可能最终会遇到针对第一个执行路径所采用的优化执行的情况。如果它是一张非常大的桌子,最终可能会导致问题。