我希望能够传入一个参数列表,并忽略那些为NULL的参数。这样查询实际上假装过滤器不存在并忽略它。我的问题是我正在过滤 的列接受NULL,但如果我使用这样的字符,则会删除所有NULL字段。
WHERE column = Case WHEN NULL column ELSE @parameter END
答案 0 :(得分:1)
稍微好一点的选择是测试:
(@param IS NULL OR column = @param)
这利用了SQL内置的短路,除非它应该对列进行评估。
答案 1 :(得分:0)
WHERE之类的东西(@parameter IS NOT NULL和column = @parameter)AND ...按要求重复......