Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Construindo uma tabela temporária no Oracle SQL


O WITH cláusula é soa como a coisa mais próxima do que você está descrevendo. Mas isso requer que você gere os dados de alguma forma. Selecionando de DUAL é provavelmente a opção mais 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 você não quer unir um monte de consultas, você pode fazer 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
)
...