sql >> Databáze >  >> RDS >> Oracle

Vytvoření dočasné tabulky v Oracle SQL

WITH klauzule zní jako nejbližší věc tomu, co popisujete. To ale vyžaduje, abyste data nějak generovali. Výběr z DUAL je pravděpodobně nejjednodušší možnost

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

Protože nechcete sjednotit spoustu dotazů, můžete udělat něco jako

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



  1. Vše, co potřebujete vědět o operátorovi LIKE v SQL

  2. Vložte data ze sloupce tabulky a uložte do sloupce jiné tabulky

  3. Vybrat předchozí řádek mysql?

  4. Maskování dat v DB aplikacích