sql >> Database >  >> RDS >> Oracle

Update meerdere kolommen in MERGE-instructie ORACLE

Ik denk niet dat je de lus nodig hebt. Ik neem aan dat je id's primaire sleutels zijn en dat het niet je bedoeling was om crank meerdere keren te herhalen in je voorbeeld.

Zou zoiets werken?

Bewerken volgens de opmerking van Raj A. Hiermee worden alleen rijen bijgewerkt waarin een van de andere velden is gewijzigd. Merk op dat hiermee geen rijen worden bijgewerkt waarvan de ene NULL is en de andere niet NULL.

MERGE INTO final T 
USING ( SELECT id, score, crank, urank FROM test ) S
   ON ( S.vid = T.id AND 
        ( S.crank != T.crank OR S.score != T.score OR S.urank != T.urank ))
 WHEN MATCHED SET crank = S.crank, score = S.score, 
      crank = S.crank, urank = S.urank 
 WHEN NOT MATCHED THEN INSERT
      [... not sure what you want to do in this case ...]



  1. PostgreSQL TOONT ​​TABELLEN Equivalent (psql)

  2. MariaDB gebruiken

  3. PL/SQL-blokprobleem:Geen gegevens gevonden fout

  4. Hoe kan ik door alle rijen van een tabel lopen? (MySQL)