How to resolve the algorithm Sum digits of an integer step by step in the SQL programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Sum digits of an integer step by step in the SQL programming language

Table of Contents

Problem Statement

Take a   Natural Number   in a given base and return the sum of its digits:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Sum digits of an integer step by step in the SQL programming language

Source code in the sql programming language

/*
This code is an implementation of "Sum digits of an integer" in SQL ORACLE 19c 
p_in_str -- input string
*/
with
  function sum_digits(p_in_str in varchar2) return varchar2 is
  v_in_str varchar(32767) := translate(p_in_str,'*-+','*');
  v_sum integer;
begin
  --
  if regexp_count(v_in_str,'[0-9A-F]',1,'i')=length(v_in_str) then -- base 16
    execute immediate 'select sum('||regexp_replace(v_in_str,'(\w)','to_number(''\1'',''X'')+')||'0) from dual' into v_sum;
    --   
  elsif regexp_count(v_in_str,'[0-9]',1,'i')=length(v_in_str) then -- base 10 
    execute immediate 'select sum('||regexp_replace(v_in_str,'(\d)','\1+')||'0) from dual' into v_sum;
    --
  else
    return 'Sum of digits for integer "'||p_in_str||'" not defined';
    --  
  end if;
  -- 
  return 'Sum of digits for integer "'||p_in_str||'" = '||v_sum;
end;

--Test
select sum_digits('') as res from dual
union all 
select sum_digits('000') as res from dual
union all 
select sum_digits('-010') as res from dual
union all
select sum_digits('+010') as res from dual
union all 
select sum_digits('120034') as res from dual
union all 
select sum_digits('FE') as res from dual
union all 
select sum_digits('f0e') as res from dual
union all
select sum_digits('öst12') as res from dual;

  

You may also check:How to resolve the algorithm Loops/N plus one half step by step in the Swift programming language
You may also check:How to resolve the algorithm The Twelve Days of Christmas step by step in the Racket programming language
You may also check:How to resolve the algorithm Leap year step by step in the UNIX Shell programming language
You may also check:How to resolve the algorithm Towers of Hanoi step by step in the Miranda programming language
You may also check:How to resolve the algorithm Integer comparison step by step in the Sparkling programming language