SSRS - 将“LIKE”过滤条件添加到报告生成器

问题描述 投票:0回答:8

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

你们有什么建议?

谢谢
拉维·古普塔

sql-server reporting-services report-builder2.0
8个回答
7
投票

您可以使用

InStr
功能

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

4
投票

在 SSRS 中我们不能使用

Like
。您可以使用
Contains
代替它。

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

4
投票

在 Visual Studio 的报告生成器中,有一个“赞”并且它可以工作。在搜索字符串中使用 * 作为通配符


1
投票

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

IF(FIND(MyFieldName, "24") = 1, TRUE, FALSE)

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

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

谢谢
拉维·古普塔


0
投票

报表生成器不支持

LIKE
运算符。您必须使用
CONTAINS
;


0
投票

这已经很晚了,但我为我的数据集制定了参数过滤器的解决方案。 使用
向我的数据集添加过滤器 表情:

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

类型

Boolean  

操作员

=

价值

true

参数默认为“*”,因此报告默认情况下会抓取所有内容。


0
投票

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


0
投票

="*" & 参数!key_word.Value & "*"

“*”为半角字符。

© www.soinside.com 2019 - 2024. All rights reserved.