2012-04-30 81 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,它有效。在搜索字符串中使用*作爲通配符