动态SQL中的子句

时间:2012-07-10 15:37:42

标签: tsql

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

E.G。

这就是我认为应该如何运作,但我无法做到这一点

Declare @param as int

set @param = 1

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

我一直在关注Dynamic SQL等?

提前致谢

1 个答案:

答案 0 :(得分:4)

试试这个WHERE子句:

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

此处并不严格要求使用括号,因为AND的优先级高于OR,但为了清晰起见,我仍然添加了它们。