sql >> Database >  >> RDS >> Oracle

Lijst met waarden vergelijken met tabel

er zijn veel soorten openbare collecties ingebouwd. je kunt een van hen als volgt gebruiken:

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;

om een ​​lijst met openbare typen op uw DB te zien, voert u :

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

de hint

/*+ cardinality(a, 1) */

wordt alleen gebruikt om orakel te vertellen hoeveel elementen er in onze array zitten (indien niet gespecificeerd, zal de standaard een aanname van 8k elementen zijn). stel gewoon in op een redelijk nauwkeurig getal.



  1. MYSQL:Bestaande primaire sleutel verkrijgen bij het invoegen van record met dubbele unieke sleutel?

  2. MySQL/PHP Twee keer dezelfde rij invoegen

  3. Foutcode:1005. Kan tabel '...' niet maken (fout:150)

  4. SqlAlchemy:de id van het laatst ingevoegde record ophalen