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

Aktualizujte více sloupců v příkazu MERGE ORACLE

Myslím, že smyčku nepotřebuješ. Předpokládám, že vaše ID jsou primární klíče a nechtěli jste ve svém příkladu několikrát opakovat klik.

Fungovalo by něco takového?

Upravit podle komentáře Raj A. Tím se aktualizují pouze řádky, kde se změnilo jedno z ostatních polí. Všimněte si, že to neaktualizuje řádky, kde jeden je NULL a druhý není 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. ORA-01830:Obrázek formátu data končí před převodem celého vstupního řetězce / Vyberte součet v dotazu na datum

  2. Vylepšení Service Broker v SQL Server 2016

  3. Jaký je účinek umístění odevzdání po DML v proceduře?

  4. Jaký je rozdíl mezi Office 365 a Office 2016?