실제 프로젝트에서, 우리는 분열과 등 비율, 비율, 추구하는 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;