【发布时间】:2014-03-30 01:55:56
【问题描述】:
是否可以根据列的值使用动态 where 子句?我可以使用 case 语句,但我需要返回多个值。伪代码如下
例如
SELECT * FROM PRODUCTS
CASE
WHEN Location = 'Vegas'
THEN 'WHERE FOO IN ('1','2','3')'
ELSE
WHEN Location = 'Juneau'
THEN 'WHERE FOO IN ('4','5','6')'
END
AND BUZZ = '1'
【问题讨论】:
-
您的表格是什么样的,您希望输出是什么样的?
-
字段:位置、foo、嘶嘶声、嗡嗡声、价格。例如,选择所有价格:如果 Vegas 则 foo 在 (1,2,3) 中,或者如果 Juneau 则 foo 在 (4,5,6) 中,否则什么都没有
-
因此,您希望根据 Location AND Foo 的某些值获得结果。第一个答案表明了这一点。
标签: sql-server dynamic where-clause