SQL 제로 오류에 의해 분할을 해결하는 두 가지 방법

실제 프로젝트에서, 우리는 분열과 등 비율, 비율, 추구하는 SQL 문을 발생할 수 있습니다. 이 때, 우리는 분모가 제로가 발생할 수 있습니다.

여기에 솔루션의 두 가지 종류가 있습니다 :

 

1. NULLIF 함수.

구문 NULLIF 함수에 대한 첫 번째 이야기 :

NULLIF (expr1을, expr2이)

expr1을 = expr2이 단어는 NULL이 반환되는 경우는 expr1을 <> expr2이 경우, 다음은 expr1을 반환하는 것이이 의미합니다.

 

2. 사건 때 문.

경우 분모 = 0 다음 NULL 다른 분자 / 분모

 

두 방법 모두 개인적으로, 각 데이터베이스의 호환성을 고려, 그렇게 생각 두 번째 방법으로 이점을 가지고, 가능하다.

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

 

 

 

게시 된 363 개 원래 기사 · 원의 찬양 (74) · 전망 190 000 +

추천

출처blog.csdn.net/sinat_26811377/article/details/104664145