为什么我们在instr函数ssrs中给出> 0。 InStr函数在不给出大于0的值的情况下工作。
答案 0 :(得分:0)
因为InStr返回搜索字符串中搜索字符串首次出现的索引。索引是从1开始的,当找不到字符串时,返回的索引是lowerbound(字符串作为字符数组) - 1 = 1 - 1 = 0.这是在VB中,在C#f.e中。它将是0 - 1 = -1。
当您使用InStr确定是否找到字符串时,您需要布尔结果,并且要使用比较> 0,当找到字符串时返回True,否则返回False。
但是,由于boolean和int之间存在隐式转换,因此可以直接使用InStr,返回值0(未找到)将转换为False,而任何非零值(找到)将转换为True
虽然这是正确的并且有效,但这种方式不那么明显,并且看一下你不能快速说出的代码=InStr(...)
,需要真正的索引(整数)或者这个索引存在的事实(布尔)。最后,它是关于代码可读性和可维护性的,不要忘记隐式转换(特别是在不可调试的SSRS代码中)可能会给您带来很多问题。