在存储过程中,我有:
@parameter int
基于此参数,我得到一些数据,它可以是-1或大于0。
问题是,如果它是-1,我不希望这个参数完全在where子句中。
所以我想做的是:
IF @parameter = -1 THEN
WHERE ...
ELSE
where ... AND Column = @parameter
但这不起作用。
答案 0 :(得分:7)
通常你会像这样应用这个约束:
WHERE [...] AND (@parameter = -1 OR Column = @parameter)
答案 1 :(得分:1)
where
@parameter != - 1 AND Column = @parameter
Dan J和我的回答之间的区别在于,如果@parameter为-1,则没有任何匹配。 Dan J回归一切,是你可能想要的行为。