回答

收藏

防止SQL中的被零除错误的简单方法

技术问答 技术问答 227 人阅读 | 0 人回复 | 2023-09-14

我有一个SQL查询,曾经导致
3 Y0 P& F8 ?9 m& Q" P. T; A2 O5 Y; }1 h( q9 J& r: {+ y: ?! A7 F
除以零例外9 M# O; b! J# A- x$ ~, A
* D7 [1 S! d- k3 w
我将其包装在CASE声明中以阻止这种情况的发生。有没有更简单的方法可以做到这一点?
% l+ U1 B7 V6 C+ }/ `7 o( Y这是我的代码:
+ e5 X7 F! `7 V- T7 U! @' ^Percentage =  CASE WHEN AttTotal  0 THEN (ClubTotal/AttTotal) * 100 ELSE 0 END
) m5 h: `1 Y* K( d6 d3 C& J4 c               
- R4 S; }) T* C2 M" m! u解决方案:
8 Y. a; T: Z1 g- L4 B3 Z                0 |6 Z+ ?: O$ N; J
  P, f2 J( W8 C4 Q: `8 ]

3 k" y4 T) b* a) p4 u: ~8 z& r                更好的方法是使用NULLIF,如下所示:, a$ }$ L' z, S) o" j
Percentage =  100 * ClubTotal / NULLIF(AttTotal, 0)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则