CREATE OR REPLACE FUNCTION my_function(int4) RETURNS SETOF int8 AS $BODY$ SELECT CASE WHEN (some_condition) THEN ( SELECT ... -- some arbitrary select statement (returning row(s) of int8 values) ) ELSE ( SELECT ... -- some arbitrary select statement (returning row(s) of int8 values) ) END $BODY$ LANGUAGE 'sql' VOLATILE;