SSIS派生列转换表达式除数0错误

时间:2013-06-06 14:18:12

标签: ssis

我正在查看去年Jax发布的这篇文章:在派生列ssis中的表达式中出现了零,这似乎涵盖了我的问题,但Jax能够自己回答并且没有提供答案。我想知道用什么方法来减轻Divisor = 0错误。

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

我认为会有一个使用ISNULL和NULLIF的解决方案,但我不能完全解决这个问题,而且NULLIF在转换编辑器中不起作用。有什么建议吗?

提前致谢!

1 个答案:

答案 0 :(得分:3)

ISNULL逻辑仅在TotalPayrollCost为NULL时处理(令人震惊,我知道)。我假设你提到isnull / nullif你想要将该值为0的相同逻辑作为null,这样你的表达式就会变成

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

基本上读取如果总工资成本为空或者工资总成本为0,则返回零。否则,请执行此计算