Sql server SSRS:条件数据集过滤器(报表生成器3.0)

Sql server SSRS:条件数据集过滤器(报表生成器3.0),sql-server,reporting-services,ssrs-2008-r2,Sql Server,Reporting Services,Ssrs 2008 R2,我的报表有几个多选参数,用于查询一个巨大的表。我没有在选中每个参数复选框的情况下使用默认的“全选”,而是将所有选项联合到我的参数列表中,并将其设置为默认值,因此我的参数选项如下所示: [ ] (Select All) [X] ALL [ ] Alabama [ ] Alaska [ ] Arizonia [ ] Arkansas etc... 我这样做是为了提高性能,所以如果选择了ALL,查询不会将其作为另一个WHERE IN子句包含。我使用动态sql实现了这一点,这有点痛苦 *最后,我的问题

我的报表有几个多选参数,用于查询一个巨大的表。我没有在选中每个参数复选框的情况下使用默认的“全选”,而是将所有选项联合到我的参数列表中,并将其设置为默认值,因此我的参数选项如下所示:

[ ] (Select All)
[X] ALL
[ ] Alabama
[ ] Alaska
[ ] Arizonia
[ ] Arkansas
etc...
我这样做是为了提高性能,所以如果选择了ALL,查询不会将其作为另一个WHERE IN子句包含。我使用动态sql实现了这一点,这有点痛苦

*最后,我的问题是,在“数据集属性”中的过滤器下,基于参数选择过滤数据集的传统方法是,例如,将一个设置为:

Expression: [US_STATE]
Operator: IN
Value: @parameter_STATE
是否有任何方法可以使用报表生成器3.0中的内置数据集过滤器来实现:

IF @parameter_STATE = 'ALL' then 

    do nothing / don't include filter

ELSE

    Expression: [US_STATE]
    Operator: IN
    Value: @parameter_STATE

我假设有一种方法可以做到这一点,这比使用动态SQL处理要容易得多?非常感谢您提供的任何信息,提前感谢

您可以只使用@parameter\u STATE='ALL'或@parameter\u STATE中的somecolumn,而不需要动态sqls。感谢您的响应,这可能非常有用。这种性能如何?对于动态sql,我在我的参数上使用连接,即@sql=N'select*from table a'+case当@param_state='ALL'时,然后N ELSE N'JOIN param_vals b on a.state=b.state'结束-对多个参数执行该操作