SSRS - 向报表生成器添加“LIKE”过滤条件

时间:2012-04-30 11:40:52

标签: reporting-services report-builder2.0

我想在SSRS报告构建器中添加带有通配符的LIKE过滤器。我使用报表生成器的过滤器数据部分中的contains子句尝试了这个。我尝试了'*'和'%',但是他们失败了。

我试过了        MyFieldName包含2451 - 这是成功的        MyFieldName包含24 * - 这失败了        MyFieldName包含24% - 此操作失败

从下面链接我觉得这是一个老问题,直到现在还没有解决方案。

http://connect.microsoft.com/SQLServer/feedback/details/202792/ssrs-adding-like-filter-criteria-to-report-builder

你们有什么建议?

谢谢你 拉维古普塔

7 个答案:

答案 0 :(得分:6)

您可以使用InStr功能

=IIF(InStr(Fields!MyFieldName.Value, "2451"),TRUE,FALSE)

答案 1 :(得分:3)

在SSRS中,我们无法使用Like。而不是你可以使用Contains

IIF((MyFieldName).ToString().Contains("RequiredString"),"True","False)

答案 2 :(得分:1)

回答我自己的问题,以下功能对我有用:

  

IF(FIND(MyFieldName,“24”)= 1,TRUE,FALSE)

这只是一个部分答案,因为这适用于像(blabla *)这样的情况,但不适用于像(bla * bla,blabla *)这样的情况。所以任何有更好主意的人都会受到欢迎。

根据达伦上面的评论,我知道这样做。

谢谢你 拉维古普塔

答案 3 :(得分:0)

报表生成器不支持LIKE运算符。您必须使用CONTAINS;

答案 4 :(得分:0)

在Visual Studio的报表生成器中有一个Like,它可以工作。在搜索字符串中使用*作为通配符

答案 5 :(得分:0)

这对于聚会来说已经很晚了,但是我为我的数据集制定了参数过滤器的解决方案。 使用
向我的数据集添加过滤器 表达方式:

=IIF(InStr(Fields!AccountName.Value, Parameters!paramAccountName.Value) OR Parameters!paramAccountName.Value = "*", TRUE, FALSE)

类型

Boolean  

操作员

=

true

该参数默认为“ *”,因此该报表看起来默认情况下会捕获所有内容。

答案 6 :(得分:0)

我刚看到这个旧线程,我很好奇为什么不能使用 like 关键字,因为我一直在使用它。 你尝试过这样的事情吗? Where (AccountName like '%' + @paramAccountName + '%' 或 @paramAccountName ='')