Dans Postgres un tableau définit automatiquement le type correspondant :
create or replace function select_my_table(argument1 int, argument2 int)
returns setof my_table language sql as $$
select *
from my_table
where id > argument1 and id < argument2;
$$;
select * from select_my_table(0, 2);
La syntaxe est plus détaillée que dans MS SQL Server car vous pouvez créer des fonctions dans l'un des nombreux langages et les fonctions peuvent être surchargées.