SSRS InStrRev 函数是一个文本函数,它从右侧开始在字符串字段中搜索字符或子字符串,并返回第一次出现的字符或子字符串的位置。本文将介绍如何使用 InStrRev 函数查找子字符串的最后一次出现位置,并提供了一个示例。
SSRS InStrRev 函数的语法,用于从右侧搜索子字符串并在字符串中查找第一次出现的位置,如下所示。
=IInStrRev(Fields!Name.Value, " abc")
为了演示 SSRS InStrRev 函数,我们使用了下面的 Employee 表,该表有 15 行。下图显示了 Table 报表中的记录。

SSRS InStrRev 函数示例
我在 Email_Address 列的右侧添加了一个新列。接下来,右键单击其下的文本框,然后选择“表达式”。为了更好地理解报表,我建议您参考有关 SSRS 中 图表、表、分组 和 格式化表 的文章。
这将打开以下表达式窗口。下面的 SSRS InStrRev 函数从右侧(反向顺序)在 Email 地址列中搜索“o”。当它找到第一次出现的“o”时,它就开始从左侧开始计数到该位置的数字。
=InStrRev(Fields!Email_Adress.Value, "o")

请单击预览选项卡以查看最后一次出现的位置。请记住,索引位置从 1 开始(而不是 0)。有关更多函数 >> 点击此处!

尝试使用子字符串(或字符串)而不是单个字符作为反向搜索项。因此,创建一个新列,下面的 SSRS InStrRev 函数表达式会在电子邮件地址中反向搜索“tu”字符串,并返回“tu”最后一次出现的位置。如果找不到,则返回 0。
=InStrRev(Fields!Email_Adress.Value, "tu")
类似地,我在 Name 和 Email 列的右侧创建了另外两个新列。接下来,右键单击它们下面的文本框以编写表达式。下面的 InStrRev 代码在 Email_Address 字段中搜索“@”并返回最后一次出现的位置。
=InStrRev(Fields!Email_Adress.Value, "t")
下面的 InStrRev 代码从右侧搜索 Name 字段中的空格,并返回第一次出现的起始位置。
=InStrRev(Fields!Name.Value, " ")
请检查报表预览。由于“ ”和“@”符号在其中只出现一次,因此 InStr 和 InStrRev 函数返回相同的结果。
