You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL除法语句中使用ISNULL/NULLIF避免除零错误?

解决SQL除零错误的方案

方案1:返回NULL

当SUM(Y.[Sales])为0时,通过NULLIF将分母转为NULL,除法结果自动变为NULL,避免除零错误:

,(CAST(SUM(Y.[Profit]) AS DECIMAL (18,2)) / NULLIF(CAST(SUM(Y.[Sales]) AS DECIMAL (18,2)), 0)) AS 'AHT'

方案2:返回0

如果期望结果为0而非NULL,在整个除法表达式外层嵌套ISNULL,将NULL替换为0:

,ISNULL(CAST(SUM(Y.[Profit]) AS DECIMAL (18,2)) / NULLIF(CAST(SUM(Y.[Sales]) AS DECIMAL (18,2)), 0), 0) AS 'AHT'

逻辑说明

  • NULLIF(a, b):当a等于b时返回NULL,否则返回a。这里用来把总和为0的销售额转为NULL,避免触发除零错误。
  • ISNULL(expr, replacement):当expr为NULL时返回replacement,否则返回expr。用来将除法得到的NULL替换为0(如果需要的话)。

内容的提问来源于stack exchange,提问作者Sergey Lykov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:55:37