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

Porovnání seznamu hodnot s tabulkou

existuje mnoho typů vestavěných veřejných sbírek. jeden z nich můžete využít takto:

with ids as (select /*+ cardinality(a, 1) */ column_value id
               from table(UTL_NLA_ARRAY_INT(100, 200, 300)) a
            )
select ids.id, case when m.id is null then '**NO MATCH**' else m.value end value
  from ids
         left outer join my_table m
                     on m.id = ids.id;

pro zobrazení seznamu veřejných typů ve vaší databázi spusťte :

select owner, type_name, coll_type, elem_type_name, upper_bound, precision, scale from all_coll_types
 where elem_type_name in ('FLOAT', 'INTEGER', 'NUMBER', 'DOUBLE PRECISION')

nápověda

/*+ cardinality(a, 1) */

se používá pouze k tomu, aby řekl oracle, kolik prvků je v našem poli (pokud není zadáno, výchozí bude předpoklad 8k prvků). stačí nastavit přiměřeně přesné číslo.



  1. Automatizujte nasazení vašeho MySQL nebo Postgres Cluster ze zálohy

  2. Databáze, která zvládne více než 500 milionů řádků

  3. Jak získáte dynamický pohled na 12 pracovních dní v Postgresql?

  4. Potřebujete najít průměrnou dobu zpracování mezi všemi záznamy časových razítek v Oracle SQL