我可以在where子句中添加if子句吗?

时间:2012-05-17 18:51:40

标签: sql sql-server tsql stored-procedures

在存储过程中,我有:

@parameter int

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

问题是,如果它是-1,我不希望这个参数完全在where子句中。

所以我想做的是:

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

但这不起作用。

2 个答案:

答案 0 :(得分:7)

通常你会像这样应用这个约束:

WHERE [...] AND (@parameter = -1 OR Column = @parameter)

答案 1 :(得分:1)

where 
  @parameter != - 1 AND Column = @parameter

Dan J和我的回答之间的区别在于,如果@parameter为-1,则没有任何匹配。 Dan J回归一切,是你可能想要的行为。

相关问题