一尘不染

SQL:取消null参数上的“ where”

sql

这可能很明显,但我感到非常困惑。

我有一个带where子句(带参数列表的where)的SQL查询。如果所有这些参数都为null,则需要SQL忽略where子句并检索所有记录。这在SQL中容易做到吗?我知道一种解决方法是,如果参数为null,则仅使用代码删除where子句。


阅读 123

收藏
2021-05-23

共1个答案

一尘不染

您可以尝试执行以下操作:

select *
from foo
where (@parameter1 is null AND @parameter2 is null)
OR  (@parameter1 = 'value1'
    AND
    @parameter2 = 'value2')

当然,它需要在您自己的查询中进行一些调整,但是现在您将检查参数是否为空或执行原始的子句。

2021-05-23