【问题标题】:IIF construct not resolving the correct way (SSRS)IIF 构造未正确解析 (SSRS)
【发布时间】: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 个表达式(而不是一个是真或假),然后它会根据对第一个条件的评估为您提供正确的表达式。

寻求帮助。谢谢!

【问题讨论】:

标签: sql-server tsql reporting-services ssrs-2012


【解决方案1】:

这是一个奇怪的错误,这里有一个解决方案

=replace(replace(IIF(InStr(Fields!P1.Value,"@")<> 0,
left(Fields!P1.Value,InStr(Fields!P1.Value,"@")),"missing"),"@",""),"missing","missing @")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-04
    • 2018-05-17
    • 2020-06-10
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    相关资源
    最近更新 更多