2017-09-30 69 views
0

例如, select * from a where id = @ id and date date date1 and @ date2
当我通过@ id = 1 @ date1 = '09/29/17'和@ date2 = '09/30/17' 然后输出正确如何创建一个查询与多个列和值可选

当我通过@ id = 0(表示在表中找不到id)@ date1 = '09/29/17'and @日期2 = '09/30/17' ,然后输出来的日期和忽略id列之间

意味着我要像一个购物网站过滤器

回答

0

,你会做到这一点的方法是在ID列使用OR,留下您的SQL看起来像:

SELECT * 
FROM a 
WHERE (@id=0 OR [email protected]) 
    AND date BETWEEN @date1 AND @date2 

你必须小心,知道的是,使用这种类型的方法的事取决于您的DBMS,您可能最终会在执行针对第一个执行路径进行优化的情况下结束。如果它是一个非常大的桌子,这可能最终导致问题。

相关问题