1

我希望能够根据传递给它的参数值来更改存储过程中的 where 子句。

例如

这就是我认为它应该工作的方式,但我无法完全正确

Declare @param as int

set @param = 1

Select Productname
from product
where
 case @param = 1 then productname = 1
 else productname <> 1
 end

我一直在看动态 SQL 等?

提前致谢

4

1 回答 1

4

试试这个 WHERE 子句:

WHERE (@param = 1 AND productname = 1)
OR    (@param <> 1 AND productname <> 1)

括号在这里不是严格需要的,因为AND它的优先级高于OR但为了清楚起见我还是添加了它们。

于 2012-07-10T15:39:45.540 回答