4

我想在 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

你们有什么建议?

谢谢拉维古普塔
_

4

7 回答 7

7

您可以使用该InStr功能

=IIF(InStr(Fields!MyFieldName.Value, "2451"),TRUE,FALSE)
于 2012-04-30T11:43:31.147 回答
4

在 SSRS 中我们不能使用Like. 您可以使用Contains.

IIF((MyFieldName).ToString().Contains("RequiredString"),"True","False)
于 2013-06-26T08:36:25.683 回答
2

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

于 2014-07-11T03:09:10.640 回答
1

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

如果(查找(我的字段名称,“24”)= 1,真,假)

这只是部分答案,因为这适用于 (blabla*) 之类的情况,但不适用于 (bla*bla, blabla*) 之类的情况。因此,欢迎任何有更好想法的人。

从上面达伦的评论中得到了这样做的想法。

谢谢拉维古普塔
_

于 2012-05-01T08:06:54.300 回答
0

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

于 2012-04-30T13:04:00.753 回答
0

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

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

类型

Boolean  

操作员

=

价值

true

该参数默认为“*”,因此报告看起来像是默认抓取所有内容。

于 2020-01-29T16:24:25.610 回答
0

我刚刚遇到了这个旧线程,我很好奇为什么你不能使用 like 关键字,因为我一直使用它。你尝试过这样的事情吗?在哪里(帐户名称,例如 '%' + @paramAccountName + '%' 或 @paramAccountName ='')

于 2020-12-24T20:24:03.600 回答