SQL解决除以零错误的两种方法 一时失言乱红尘 2023-07-11 08:50 1阅读 0赞 在实际项目中,我们可能会遇到求百分比,比值等带除法的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 -- MySQL SET @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;
还没有评论,来说两句吧...