本文主要是介绍SQL解决除以零错误的两种方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在实际项目中,我们可能会遇到求百分比,比值等带除法的sql语句。这时,我们也许会遇到分母为零的情况。
下面给出解决的2种方法:
1. 用NULLIF函数。
首先说一下NULLIF函数的语法:
NULLIF(expr1,expr2)
意思是说:如果expr1<>expr2的话,则传回expr1;如果expr1=expr2的话,则返回NULL。
2.用case when语句。
case when 分母=0 then NULL else 分子/分母
这两种方法都可行,个人认为,如果考虑到各个数据库的兼容性,用第二种方法更有优势。
-- Nullif(expr1,expr2) expr1=expr2返回null;expr1<>expr2返回expr1
-- Case When 分母=0 Then null Else 分子/分母 End
-- Case 分母 When 0 Then null Else 分子/分母 End
-- MySQLSET @var1=10, @var2=20, @var3=0;SELECT@var1/NULLIF(@var2,0),@var1/NULLIF(@var3,0),CASE @var2 WHEN 0 THEN NULL ELSE @var1/@var2 END AS var1_var2,CASE @var3 WHEN 0 THEN NULL ELSE @var1/@var3 END AS var1_var3;
这篇关于SQL解决除以零错误的两种方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!