繁体   English   中英

WHERE子句中的条件筛选器

[英]Conditional filter in WHERE clause

如何在SQL WHERE子句中设置条件筛选器? 例如,我有一个带有以下过程的参数@ID

SELECT * FROM myTable WHERE Column1 = 'test' AND Column2 = @ID

但是,如果@ID = -1,我不希望包含SQL的最后一部分(AND Column2 = @ID)

我意识到我可以使用2个单独的查询创建一个if语句,但是这是一个大型脚本并且多次出现同样的问题,所以我希望有一种比几乎复制多个查询更好的方法

这对T-SQL来说没问题:

SELECT * FROM myTable WHERE Column1 = 'test' AND (@ID = -1 OR Column2 = @ID)

只需在SQL中包含条件作为OR,请注意括号

SELECT * FROM myTable WHERE Column1 = 'test' AND (@ID = -1 OR Column2 = @ID)

一种选择:

SELECT * FROM myTable WHERE Column1 = 'test' AND @ID in (-1,Column2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM