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

Opdater flere kolonner i MERGE-sætning ORACLE

Jeg tror ikke, du har brug for løkken. Jeg går ud fra, at dine id'er er primære nøgler, og du mente ikke at gentage håndsvinget flere gange i dit eksempel.

Ville sådan noget virke?

Rediger efter Raj A's kommentar. Dette vil kun opdatere rækker, hvor et af de andre felter er ændret. Bemærk, at dette ikke vil opdatere rækker, hvor den ene er NULL og den anden ikke er 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. Sådan ændres et databasenavn i SQL Server ved hjælp af T-SQL

  2. Datamodeller

  3. MySQL Forkert datetime-værdi:'0000-00-00 00:00:00'

  4. Post og få på samme tid i php