Oracle
 sql >> Database >  >> RDS >> Oracle

Costruzione di una tabella temporanea in Oracle SQL

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
)
...