iif函数是否计算SSRS中的两个路径或者它是否已短路?

Nat*_*her 19 iif-function reportingservices-2005 reporting-services

我试图根据产品的销售额来评估每公斤价格($/Kg).如果产品在指定期间内实际销售,则此方法可以正常工作.但是,如果产品未售出,则Kg(分母)最终为0(零)并产生错误. - 除以零错误.

我试过这个

=iif(KgSold=0,0,Revenue/KgSold)
Run Code Online (Sandbox Code Playgroud)

似乎该iif函数正在计算真假结果.我该如何解决这个问题.

我应该使用该switch功能吗?

=switch(KgSold=0,0
        KgSold<>0,Revenue/KgSold)
Run Code Online (Sandbox Code Playgroud)

Rob*_*vey 16

你没错,它不会短路.太糟糕了.

你必须做这样的事情:

= Iif(KgSold = 0, 0, Revenue) / Iif(KgSold = 0, 1, KgSold )
Run Code Online (Sandbox Code Playgroud)

切换功能也应该有效.


Bry*_*ard 5

发生这种情况是因为在 VBScript 中,IIF 中的所有条件都将在任何功能发生之前先进行评估。