SQL WHERE子句中的条件检查

时间:2011-06-30 13:22:47

标签: sql sql-server sql-server-2008

我需要在类似于

的where子句中执行条件语句
WHERE
IF(@Param = 0) THEN
Column1 != 7

我试图允许用户根据@Param的值排除一组记录。

3 个答案:

答案 0 :(得分:7)

您可以将这些组合成一个条件:

WHERE
(@Param != 0 OR Column1 != 7)

对于更复杂的条件,您可能还依赖于CASE表达式(但注意这些是表达式,并且必须返回一个值,此处为1或(默认情况下){{1 }}):

NULL

答案 1 :(得分:4)

尝试

Where (@Param = 0 And Column1 != 7)

如果经常这样做......

Where (@Param1 Is Null Or (Column1 = @Param1)) 
And   (@Param2 Is Null Or (Column2 = @Param2)) 

这里有一篇关于where子句的好文章...... http://weblogs.sqlteam.com/jeffs/archive/2003/11/14/513.aspx

答案 2 :(得分:0)

WHERE (@Param = 0 AND Column1 != 7) AND ...