Хочу сегодня привести примеры создания функций для СУБД Microsoft SQL Server и PostgreSQL. Функция возвращает таблицу с 3-мя полями.
Как это пишется в MS SQL Server:
CREATE FUNCTION dbo.myFunction (--variables list--) RETURNS result_table TABLE(field1 integer, field2 integer, field3 integer) AS BEGIN insert into result_table select val1, val2, val3 from another_table; return; END;
А вот так в PostgreSQL:
CREATE OR REPLACE FUNCTION public.get_count_in_batch(--variables list--) RETURNS TABLE(field1 integer, field2 integer, field3 integer) LANGUAGE 'plpgsql' COST 100 VOLATILE ROWS 1000 AS $BODY$ begin return query select val1, val2, val3 from another_table; end; $BODY$;
Конечно, здесь примеры сокращены до минимума, только лишь с целью показать механизм возврата результата. Продолжить чтение «Функция, возвращающая таблицу returns table — в PostgreSQL и MS SQL Server»