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

Sammenligning af værdiliste med tabel

der er mange indbyggede offentlige samlingstyper. du kan udnytte en af ​​dem på denne måde:

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;

for at se en liste over offentlige typer på din DB, kør :

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

tippet

/*+ cardinality(a, 1) */

bruges bare til at fortælle oracle, hvor mange elementer der er i vores array (hvis ikke angivet, vil standarden være en antagelse om 8k elementer). bare indstillet til et rimeligt nøjagtigt tal.



  1. En sikker PHP-klasse, der forbinder til MySQL?

  2. Duplikere poster for at udfylde hullet mellem datoer

  3. hvordan man udfylder database ved hjælp af procedurer

  4. Indsættelse af data fra frontend til mysql db i angularjs