这可能很明显,但我感到非常困惑。
我有一个带where子句(带参数列表的where)的SQL查询。如果所有这些参数都为null,则需要SQL忽略where子句并检索所有记录。这在SQL中容易做到吗?我知道一种解决方法是,如果参数为null,则仅使用代码删除where子句。
您可以尝试执行以下操作:
select * from foo where (@parameter1 is null AND @parameter2 is null) OR (@parameter1 = 'value1' AND @parameter2 = 'value2')
当然,它需要在您自己的查询中进行一些调整,但是现在您将检查参数是否为空或执行原始的子句。