0

在存储过程中,我有:

@parameter int

基于这个参数,我得到一些数据,它可以是 -1 或大于 0。

问题是,如果它是 -1,我根本不希望这个参数出现在 where 子句中。

所以我想做的是:

IF @parameter = -1 THEN
WHERE ...
ELSE
where ... AND Column = @parameter

但这不起作用。

4

2 回答 2

7

通常,您会像这样应用该约束:

WHERE [...] AND (@parameter = -1 OR Column = @parameter)
于 2012-05-17T18:54:03.407 回答
1
where 
  @parameter != - 1 AND Column = @parameter

Dan J 和我的回答之间的区别在于,如果 @parameter 为 -1,则没有任何匹配项。Dan J 返回所有内容,并且是您可能想要的行为。

于 2012-05-17T18:55:05.650 回答