回答

收藏

如何避免SQL零除错误?

技术问答 技术问答 101 人阅读 | 0 人回复 | 2023-09-13

我有这样的错误信息:
" @+ q% V9 a7 |消息8134,级别16,状态1,第1行除以零错误。
4 v' H7 l; O1 {& j, \5 O. O
编写SQL最好的代码方法是什么,这样我就再也看不到这个错误的消息了?) d6 H! Z( R9 V1 a, e
我可以执行以下任何操作:
; l+ }' K4 O! ^, C添加一个where这样,我的除数永远不会为零或者0 N6 {1 r2 G2 c  a/ Z
我可以加一个case句子,以便特殊处理零。使用NULLIF最好的方法是子句吗?
1 w% q' ~- h6 h0 I0 T- N) X2 D有没有更好的方法,或者如何执行?' j5 V7 ]% q; p% m4 r% _
                                                               
, n* p- ^! ]; K# O0 a    解决方案:                                                                & t2 X& S0 M- m" i: Y9 r( I! v+ V
                                                                为避免零除错误,我们编程如下:
/ E( D! t1 d7 X9 W! QSelect Case when divisor=0 then nullElse dividend / divisorEnd ,,,但这是一种更好的方法:+ K/ X/ ^4 [# K* T* E7 L1 [
Select dividend / NULLIF(divisor,0) ...现在唯一的问题是,如果我使用“ /”键,则要记住NullIf位。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则