CREATE OR REPLACE FUNCTION find_summa(a INTEGER, b INTEGER) RETURNS INTEGER AS $$
DECLARE c INTEGER;
BEGIN
c = a + b;
RETURN c;
END;
$$ LANGUAGE plpgsql;
SELECT find_summa(7, 3);
На основе функции, считающей сумму чисел, напишем функцию, считающую периметр прямоугольника.
Вызываем данную функцию.
CREATE OR REPLACE FUNCTION find_perimetr(side_first INTEGER, side_second INTEGER) RETURNS INTEGER AS $$
DECLARE sum_of_sides INTEGER;
DECLARE answer_perimetr INTEGER;
BEGIN
sum_of_sides = find_summa(side_first, side_second);
answer_perimetr = sum_of_sides * 2;
RETURN answer_perimetr;
END;
$$ LANGUAGE plpgsql;
SELECT find_perimetr(4, 5);
Создаём функцию, проверяющую чётность числа.
Вызываем данную функцию.
CREATE OR REPLACE FUNCTION is_chetn(xxx INTEGER) RETURNS TEXT AS $$
DECLARE answer_text TEXT;
BEGIN
IF (xxx % 2 = 0) THEN
answer_text = 'YES';
ELSE
answer_text = 'NO';
END IF;
RETURN answer_text;
END;
$$ LANGUAGE plpgsql;
SELECT is_chetn(7);
Напишем функцию, считающую сумму всех целых чисел на отрезке.
Вызываем данную функцию.
В данном случае вычисление будет работать так: 4 + 5 + 6 + 7 = 22
CREATE OR REPLACE FUNCTION get_summa_of_all_numbers(start INTEGER, finish INTEGER) RETURNS INTEGER AS $$
DECLARE my_iter INTEGER;
DECLARE answer_summa INTEGER;
BEGIN
answer_summa = 0;
FOR my_iter IN start..finish LOOP
answer_summa = answer_summa + my_iter;
END LOOP;
RETURN answer_summa;
END;
$$ LANGUAGE plpgsql;
SELECT get_summa_of_all_numbers(4,7);
Напишем функцию, которая выводит числа в виде 0_1_2_3_4_5_6_7
Вызовем данную функцию.
CREATE OR REPLACE FUNCTION make_string_of_numbers_and(finish INTEGER) RETURNS TEXT AS $$
DECLARE nnn INTEGER;
DECLARE big_string TEXT;
BEGIN
big_string = '';
nnn = 0;
WHILE nnn <= finish LOOP
big_string = big_string || cast(nnn as TEXT);
IF nnn <> finish LOOP THEN
big_string = big_string || '_';
END IF;
nnn = nnn + 1;
END LOOP;
RETURN big_string;
END;
$$ LANGUAGE plpgsql;
SELECT make_string_of_numbers_and(7);