DO BEGIN
DECLARE Numerator DECIMAL (38, 16);
DECLARE Denominator DECIMAL (38, 16);
Numerator = 100;
Denominator = 0;
-- Divide By 0 Error
--SELECT (Numerator / Denominator) AS "Result" FROM DUMMY;
-- Option 1 Using Case
SELECT CASE WHEN Denominator = 0 THEN 0 ELSE (Numerator / Denominator)
END AS "Using_Case" FROM DUMMY;
-- Option 2 Using NULLIF
SELECT (Numerator / NULLIF(Denominator, 0)) AS "Using_NullIF" FROM DUMMY;
-- Option 3 Using IF..THEN..ELSE
IF Denominator = 0 THEN
SELECT 0 AS "Using_IF" FROM DUMMY;
ELSE
SELECT (Numerator / Denominator) AS "Using_IF" FROM DUMMY;
END IF;
-- Option 4 Using NDIV0 Function
SELECT NDIV0 (Numerator, Denominator) AS "Using_NDIV0" FROM DUMMY;
END;
Please share if there are other options available.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
12 | |
8 | |
6 | |
5 | |
5 | |
5 | |
4 | |
4 | |
4 | |
3 |