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

111*_*110 0 sql t-sql sql-server stored-procedures

在存储过程中,我有:

@parameter int
Run Code Online (Sandbox Code Playgroud)

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

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

所以我想要做的是:

IF @parameter = -1 THEN
WHERE ...
ELSE
where ... AND Column = @parameter
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

Dan*_*n J 7

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

WHERE [...] AND (@parameter = -1 OR Column = @parameter)
Run Code Online (Sandbox Code Playgroud)