El WITH
la cláusula suena como lo más parecido a lo que estás describiendo. Pero eso requiere que generes los datos de alguna manera. Seleccionando entre DUAL
es probablemente la opción más fácil
WITH my_temp_table AS (
SELECT 'One' name, 1 num from dual union all
SELECT 'Two', 2 from dual union all
SELECT 'Three', 3 from dual union all
SELECT 'Four', 4 from dual
)
SELECT *
FROM my_temp_table
JOIN person ON (<<some join condition>>)
WHERE <<some predicate>>
Como no desea unir un montón de consultas, podría hacer algo como
WITH my_temp_table AS (
select level num,
initcap( to_char( to_date( level, 'J' ),
'JSP' )) name
from dual
connect by level <= 4
)
...