Oracle
 sql >> Base de données >  >> RDS >> Oracle

Construire une table temporaire dans Oracle SQL

Le WITH clause ressemble à la chose la plus proche de ce que vous décrivez. Mais cela nécessite que vous génériez les données d'une manière ou d'une autre. Sélection à partir de DUAL est probablement l'option la plus simple

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

Puisque vous ne voulez pas regrouper un tas de requêtes, vous pouvez faire quelque chose comme

WITH my_temp_table AS (
  select level num,
         initcap( to_char( to_date( level, 'J' ),
                           'JSP' )) name
    from dual
 connect by level <= 4
)
...