SQL如何避免除零錯誤

用Nullif函數和Case When Then Else End

--  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;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章