В хранимой процедуре (в моем случае Oracle) я хочу добавить некоторые значения в существующую запись. Проблема в том, что и существующее значение, и значение, которое нужно добавить, могут быть нулевыми. Я хочу, чтобы результат был NULL только тогда, когда оба операнда равны нулю. Если только один из них равен нулю, я хочу, чтобы результатом был другой операнд. Если оба не равны нулю, я хочу, чтобы результат был "нормальным" сложением.
Вот что я использую до сих пор:
SELECT column INTO anz_old FROM aTable Where <someKeyCondition>;
IF anz_old IS NULL
THEN
anz_new := panzahl;
ELSE
anz_new := anz_new + NVL (panzahl, 0);
END IF;
UPATE aTabel set column = anz_new Where <someKeyCondition>;
Есть ли более элегантный способ (желательно полностью в SQL, т.е. просто в операторе обновления, за исключением длинного оператора CASE, в основном с той же логикой, что и в приведенном выше коде)?