【发布时间】:2017-01-25 09:55:47
【问题描述】:
我在 SSRS2012 的参数中的这段代码有问题。
=IIF(InStr(Parameters!P1.Value,"@")=0,
"missing @",
Left(Parameters!P1.Value(InStr(Parameters!P1.Value,"@")-1)))
我的目标是检查参数 P1 是否包含“@”,如果不是,我将打印“缺少 @”,否则我想从该参数中删除“@”之后的内容(包含“@”)。
示例:
P1 = 123456 --> 打印“缺少@”
P1 = 123@56 --> 打印 123
问题是 SSRS 丢弃错误:当我插入没有“@”的值时,“参数'长度'必须大于或等于零”。 (当我插入一个带有“@”的值时,一切顺利)
似乎 IIF 会首先解析 2 个表达式(而不是一个是真或假),然后它会根据对第一个条件的评估为您提供正确的表达式。
寻求帮助。谢谢!
【问题讨论】:
-
不是重复的,试过switch功能还是一样
-
会不会是参数只包含'@'符号而没有其他?
-
不是真的,比如这个参数 --> 123@56 也会产生错误
标签: sql-server tsql reporting-services ssrs-2012