@ivandao

Как сложить значения с null?

Есть несколько полей, которые требуется сложить
a1, a2, .. an
каждый из них может быть null
нужно найти их сумму

Интересует решение вида
f(a1, a2, .. an)
или
f2(f1(a1, a2, .. an))
или
f(a1 + a2 + .. + an)

но не

f( f1(a1) + f1(a2) + .. + f1(an) )
  • Вопрос задан
  • 841 просмотр
Пригласить эксперта
Ответы на вопрос 2
idShura
@idShura
Ответ написан
Комментировать
@o5a
Можно создать функцию, использующую varray, затем ее использовать для такого суммирования, например так:

create type t_varr is varray(100) of number;

create or replace function sum_varr(p_arr t_varr)
return number IS
  v_res number;
begin
  select sum(nvl(column_value,0)) into v_res
  from table(p_arr);
  return v_res;
end;
/

with t as (select 1 a, null b, null c from dual union all
select null a, null b, null c from dual union all
select null a, 2 b, 3 c from dual union all
select 5 a, 2 b, 1 c from dual)
select t.*, sum_varr(t_varr(a,b,c))
from t;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы