我想在SSRS报告构建器中添加带有通配符的LIKE过滤器。我使用报表生成器的过滤器数据部分中的contains子句尝试了这个。我尝试了'*'和'%',但是他们失败了。
我试过了 MyFieldName包含2451 - 这是成功的 MyFieldName包含24 * - 这失败了 MyFieldName包含24% - 此操作失败
从下面链接我觉得这是一个老问题,直到现在还没有解决方案。
你们有什么建议?
谢谢你 拉维古普塔
答案 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 ='')