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

Opdater rækker i én tabel med data fra en anden tabel baseret på, at én kolonne i hver er ens

update 
  table1 t1
set
  (
    t1.column1, 
    t1.column2
      ) = (
    select
      t2.column1, 
      t2.column2
    from
      table2  t2
    where
      t2.column1 = t1.column1
     )
    where exists (
      select 
        null
      from 
        table2 t2
      where 
        t2.column1 = t1.column1
      );

Eller dette (hvis t2.column1 <=> t1.column1 er mange til én, og enhver af dem er god):

update 
  table1 t1
set
  (
    t1.column1, 
    t1.column2
      ) = (
    select
      t2.column1, 
      t2.column2
    from
      table2  t2
    where
      t2.column1 = t1.column1
    and
      rownum = 1    
     )
    where exists (
      select 
        null
      from 
        table2 t2
      where 
        t2.column1 = t1.column1
      ); 


  1. Transparent datakryptering og altid krypteret

  2. Overvågning af tabelændring i Oracle

  3. oracle -- Opdel flere kommaseparerede værdier i oracle-tabellen til flere rækker

  4. Sådan ændres kolonnedatatype fra tegn til numerisk i PostgreSQL 8.4