仅在where子句中(SQL Server)

时间:2017-03-15 09:48:02

标签: sql sql-server

我需要知道如何做到这一点:

WHERE (if @date is not null) date = @Date

如果@date不为null,那么只有一个条件要做,否则就没有条件要做。我读过这样的东西

WHERE date = IIF (@Date IS NOT NULL, @date , )

但它并不适合这种情况。

谢谢!

3 个答案:

答案 0 :(得分:2)

WHERE (date = @Date OR @Date IS NULL)

这将检查您的列是否等于参数;如果参数为null,则日期列不需要与参数值

匹配

答案 1 :(得分:0)

WHERE Date=CASE WHEN @date IS NULL THEN Date ELSE @Date END

答案 2 :(得分:0)

在WHERE子句中使用CASE语句而不是IFF

 SELECT * FROM Your_table
 WHERE Date = CASE WHEN @date IS NULL THEN Date ELSE @Date END