Sql server 2005 在SSRS 2005 IIF表达式中使用Like运算符
我在SSRS中有一个非常复杂的IIF表达,我想改变细胞的背景颜色,它会根据特定的条件而改变。它在当前状态下运行良好,但我正在尝试为它添加一个类似的条件 下面是它现在的样子(工作): 我想做的是在这一行的某个地方添加一个like type语句,它会说…和类似“Scan”的位置-换句话说,在标题的某个地方添加一个带有“Scan”的位置。locationName也是我在报告中显示的一个字段Sql server 2005 在SSRS 2005 IIF表达式中使用Like运算符,sql-server-2005,reporting-services,Sql Server 2005,Reporting Services,我在SSRS中有一个非常复杂的IIF表达,我想改变细胞的背景颜色,它会根据特定的条件而改变。它在当前状态下运行良好,但我正在尝试为它添加一个类似的条件 下面是它现在的样子(工作): 我想做的是在这一行的某个地方添加一个like type语句,它会说…和类似“Scan”的位置-换句话说,在标题的某个地方添加一个带有“Scan”的位置。locationName也是我在报告中显示的一个字段 ( FormatPercent(Sum(Fields!numberOfIssues.Value)/Fir
(
FormatPercent(Sum(Fields!numberOfIssues.Value)/First(Fields!totalItems.Value),3) >= .0001 & "%"
And ( First(Fields!errorType.Value) = "TypeA")
)
类似的声明类似于:
... And ( First(Fields!errorType.Value) = "TypeA") And First(Fields!locationName.Value) Like "*Scan*"
但这不起作用。我也试过:
And ( First(Fields!errorType.Value) = "TypeA" And First(Fields!locationName.Value.ToString().Contains("Scan")
这也不行
我可以在SSRS 2005表达式中这样做吗?谢谢 我认为你的问题在于语法。仔细检查()和的位置,在您的语句中as Contains应该适用于您正在尝试的内容 我还注意到你的发言:
First(Fields!locationName.Value.ToString().Contains("Scan"))
应该是:
First(Fields!locationName.Value).ToString().Contains("Scan")
您也可以尝试使用
IndexOf
功能。IndexOf返回您传递的字符串在源中出现的字符位置。因此,如果大于(或等于)零,则字符串包含字符“Scan”-如果小于零,则源不包含该字符串
Fields!YourField.Value.ToString().IndexOf("Scan") >= 0
尽管它的工作原理与您使用它的方式大致相同。太棒了!也谢谢你解释IndexOf。现在说得通了!甜心!这就解决了一个完全不同的问题,我需要根据客户机ID的值有条件地显示一个表列。
Fields!YourField.Value.ToString().IndexOf("Scan") >= 0