ユーザ定義関数で複数行を返却
こんなこと出来るなんて知りませんでした。
create or replace function virtual_table() RETURNS setof text AS $$ begin return next 'abc'; return next 'def'; end; $$ language plpgsql;
RETURNS setof [type] と return next を忘れず追加。
from句で使用する関数となる。
実行結果
# select * from virtual_table(); virtual_table --------------- abc def (2 rows)