본문 바로가기

Test Code/PostgreSql

[PostgreSql] for, foreach 문 사용하기

for, foreach 문 사용하기


 

for와 foreach를 사용하여 합계를 구하는 함수를 만들어 보았습니다.

생각대로 foreach 가 훨신 깔끔하게 느껴집니다.

아래 소스를 확인해 보시기 바랍니다.

 


 

-- for를 사용하여 합계 구하기

CREATE OR REPLACE FUNCTION fn_sum(numeric[])
RETURNS numeric AS $$
DECLARE
     a_data      ALIAS FOR $1;
     v_return    numeric;
     v_i         integer;
     v_len       integer;
BEGIN
     v_return := 0;
     v_len := array_length(a_data, 1);
     FOR v_i IN 1..v_len
     LOOP
          v_return := v_return + a_data[v_i];
     END LOOP;

     RETURN v_return;
END
$$ LANGUAGE 'plpgsql';

 


 

-- forech를 사용하여 합계 구하기

CREATE OR REPLACE FUNCTION fn_sum(numeric[])
RETURNS numeric AS $$
DECLARE
     a_data      ALIAS FOR $1;
     v_return    numeric;
     v_val       numeric;
BEGIN
     v_return := 0;
     FOREACH v_val IN ARRAY a_data 

     LOOP
          v_return := v_return + v_val;
     END LOOP;

     RETURN v_return;
END
$$ LANGUAGE 'plpgsql';