-
慕娘9325324
为了避免“零除法”错误,我们编写了这样的程序:Select Case when divisor=0 then nullElse dividend / divisorEnd ,,,但这里有一种更好的方法:Select dividend / NULLIF(divisor, 0) ...现在唯一的问题是如果我使用“/”键,记住Nullif位。
-
Helenr
如果您想返回零,如果发生零检测,您可以使用:SELECT COALESCE(dividend / NULLIF(divisor,0), 0) FROM sometable对于每一个除数为零,您将在结果集中得到一个零。
-
手掌心
这似乎是最好的解决我的情况时,试图解决除以零,这确实发生在我的数据。假设您想要计算各个学校俱乐部的男女比率,但是您发现以下查询失败,并在试图为没有女性的指环王俱乐部计算比率时,发出了一个除以零的错误:SELECT club_id, males, females, males/females AS ratio FROM school_clubs;您可以使用该函数NULLIF以避免除以零。NULLIF比较两个表达式,如果它们相等,则返回NULL,否则返回第一个表达式。将查询重写为:SELECT club_id, males, females, males/NULLIF(females, 0) AS ratio FROM school_clubs;除以NULL施予NULL,并且不会产生错误。