2

我正在浏览 Jax 去年的这篇帖子:在派生列 ssis 的表达式中出现除以零,这似乎涵盖了我的问题,但 Jax 能够自己回答,但没有提供答案。我想知道使用什么方法来缓解 Divisor =0 错误。

我的问题是这个表达式: ISNULL(TotalPayrollCost) ?0 : (ExcessCapacity * RouteVehicleCostAlloc) / TotalPayrollCost 我确认 TotalPayrollCost 在数据查看器中显示为 0。

我认为会有一个同时使用 ISNULL 和 NULLIF 的解决方案,但我就是不能让它工作,而且 NULLIF 在转换编辑器中不起作用。有什么建议么?

提前致谢!

4

1 回答 1

3

ISNULL 逻辑只会在TotalPayrollCost为 NULL 时处理(我知道,这很令人震惊)。我假设因为您提到 isnull/null 如果您想将该值 0 作为 null 采用相同的逻辑,因此您的表达式将变为

(ISNULL(TotalPayrollCost) || TotalPayrollCost == 0) ? 0 : (ExcessCapacity * RouteVehicleCostAlloc) / TotalPayrollCost

这基本上是如果总工资成本为空或总工资成本为 0,则返回零。否则,做这个计算

于 2013-06-06T14:33:29.203 回答