决定是否执行WHERE的条件

时间:2013-02-20 13:16:55

标签: sql conditional where

我有一个非常大的存储过程,我希望在WHERE的情况下在最后包含一个@myparameter=1子句。我不希望存储过程在@myparameter=0时关注WHERE子句。有没有办法用CASE或类似的东西来做到这一点?

3 个答案:

答案 0 :(得分:1)

WHERE @myparameter=0 OR (insert the current conditions here)

答案 1 :(得分:0)

添加修改版本的where而不是你的

where (@myparemeter = 0 or (@myparameter = 1 and (your where conditions here)))

答案 2 :(得分:0)

如果你真的想使用CASE,就像这样...

WHERE
  CASE 
    WHEN (@myparameter=0) THEN 1
    WHEN (@myparameter=1) AND (rest of where clause) THEN 1
    ELSE 0
  END = 1