SQL Server:当@parm = -1时返回所有记录

时间:2012-09-10 19:19:25

标签: sql-server sql-server-2008

我的查询需要帮助:

当我向查询发送一个值为-1的参数时,我想获取所有记录(此参数不会过滤结果),否则根据值进行过滤。

我正在尝试这样的事情:

WHERE  (StatusId = CASE WHEN @StatusId = - 1 
        THEN 
        @StatusId IS NULL 
        ELSE 
        StatusId = @StatusId   END)

感谢。

3 个答案:

答案 0 :(得分:5)

where  @StatusId = -1 or @StatusId = StatusId

答案 1 :(得分:2)

 WHERE StatusId = @StatusId OR @StatusId = -1

答案 2 :(得分:2)

我认为这只是诀窍

Where (@StatusId = -1 or StatusId=@StatusId )