Il WITH
La clausola è suona come la cosa più vicina a ciò che stai descrivendo. Ma ciò richiede che tu generi i dati in qualche modo. Selezionando da DUAL
è probabilmente l'opzione più semplice
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>>
Dal momento che non vuoi unire un sacco di query, potresti fare qualcosa del tipo
WITH my_temp_table AS (
select level num,
initcap( to_char( to_date( level, 'J' ),
'JSP' )) name
from dual
connect by level <= 4
)
...