Sql server SQL Server 2008动态Where子句

Sql server SQL Server 2008动态Where子句,sql-server,dynamic,where-clause,Sql Server,Dynamic,Where Clause,是否可以基于列的值使用动态where子句?我可以使用case语句,但需要返回多个值。下面是伪代码 例如 使用布尔逻辑: SELECT * FROM PRODUCTS where ( (Location = 'Vegas' and FOO IN ('1','2','3')) or (Location = 'Juneau' and FOO IN ('4','5','6')) ) AND BUZZ = '1' 您的表是什么样子的?您希望输出是什么样子的?字段:位置、foo、fizz、buzz、p

是否可以基于列的值使用动态where子句?我可以使用case语句,但需要返回多个值。下面是伪代码

例如

使用布尔逻辑:

SELECT * FROM PRODUCTS
where (
 (Location = 'Vegas' and FOO IN ('1','2','3')) or
 (Location = 'Juneau' and FOO IN ('4','5','6'))
)
AND BUZZ = '1'

您的表是什么样子的?您希望输出是什么样子的?字段:位置、foo、fizz、buzz、price。例如,选择所有价格:如果Vegas然后foo在(1,2,3)中,或者如果Juneau然后foo在(4,5,6)中,否则为零,那么您希望基于位置和foo的特定值获得结果。第一个答案说明了这一点。谢谢blorgbeard,这是有道理的。我将测试它以确保它工作正常,如果没有任何其他问题,则将此标记为答案
SELECT * FROM PRODUCTS
where (
 (Location = 'Vegas' and FOO IN ('1','2','3')) or
 (Location = 'Juneau' and FOO IN ('4','5','6'))
)
AND BUZZ = '1'