我希望能够根据传递给它的参数值更改存储过程中的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等?
提前致谢
答案 0 :(得分:4)
试试这个WHERE子句:
WHERE (@param = 1 AND productname = 1)
OR (@param <> 1 AND productname <> 1)
此处并不严格要求使用括号,因为AND
的优先级高于OR
,但为了清晰起见,我仍然添加了它们。