我正在除以0错误.我注意到有时我划分的字段是NULL.
(SUM(RentMonths * SQFT) / SUM(SQFT))
Run Code Online (Sandbox Code Playgroud)
当SQFT有时可以为空时,处理这种情况的正确方法是什么?我知道这可能是糟糕的数据,但除此之外; 我现在无法解决这个问题.
除以NULL是完全有效的 - 结果很简单NULL.当您尝试除以零时,问题是(如错误消息所述).
您可以NULLIF用来解决这个问题:
(SUM(RentMonths * SQFT) / NULLIF(SUM(SQFT), 0))
Run Code Online (Sandbox Code Playgroud)
NULL如果除数是0或者任何一个操作数是结果,结果将是NULL.
正如评论中指出的那样,CASE也可以使用一个声明:
CASE WHEN SUM(SQFT) <> 0 THEN (SUM(RentMonths * SQFT) / SUM(SQFT)) END
Run Code Online (Sandbox Code Playgroud)
优点是这几乎可以在任何数据库中使用,但缺点是它重复表达式来计算除数.
| 归档时间: |
|
| 查看次数: |
453 次 |
| 最近记录: |