2012-04-30 79 views
2

我想在SSRS报告构建器中添加带有通配符的LIKE过滤器。我尝试使用报告构建器的过滤器数据部分中包含的contains子句。我尝试了'*'和'%',但其中的失败了。SSRS - 为报告构建器添加“LIKE”过滤器条件

我试图 MyFieldName包含2451 - 这succeds MyFieldName包含24 * - 失败 MyFieldName含有24% - 这失败

从下面的链接,我觉得这是一个老问题没有解决,直到呢。

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

你们有什么建议?

感谢
拉维笈多

回答

5

您可以使用InStr功能

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

感谢darren提供了及时回复,我需要的是 “= IIF(InStr(Fields!MyFieldName.Value,”2451 *“),TRUE,FALSE)”,我得到错误当我写这个时说无效字符。 – TechnicalSmile

+0

下面为我工作 IF(FIND(MyFieldName,“24”)= 1,TRUE,FALSE) 从你的答案中得到了这个想法。谢谢。我会添加这个答案作为我自己的问题的答案,但只能在8小时后这样做。 – TechnicalSmile

+0

在我看来,这并没有真正回答这个问题,因为它不处理通配符。 OP很高兴能够继续他的项目,但它不会帮助正在寻找在SSRS过滤器中使用通配符的未来用户。 –

0

报表生成器不支持LIKE操作。您必须使用CONTAINS;

1

回答我的问题,下面的功能为我工作:

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

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

有想法从上面Darren的评论做到这一点。

感谢
拉维笈多

+0

然后upvote他。 :) –

+0

@Cygal - 谢谢 –

3

在SSRS我们不能使用Like。而不是你可以使用的Contains

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

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