问题描述
我在 sql 2008 中有一个查询,其中用户可以选择多个可选参数,如下所示:
I have a query in sql 2008 where a use can select multiple optional parameters like these:
@DateFrom @DateTo @UserType @Customer @User
基于所有这些选项进行过滤的最佳/最高效方法是什么?
What's the best / most performant approach to filtering based on all of these options?
- 针对不同情况的单独选择语句
- 使用合并
- 等
推荐答案
使用这种方法可以避免使用多个 IF ELSE 条件和动态查询.
You can avoid using multiple IF ELSE condition and dynamic query by using this approach.
SELECT * FROM TBL WHERE (@Name IS NULL OR Name = @Name) AND (@Age IS NULL OR Age = @Age)