[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';