sql >> Databasteknik >  >> RDS >> Oracle

Uppdatera flera kolumner i MERGE-satsen ORACLE

Jag tror inte att du behöver slingan. Jag antar att dina id är primärnycklar och du menade inte att du skulle upprepa vevet flera gånger i ditt exempel.

Skulle något liknande fungera?

Redigera enligt Raj A:s kommentar. Detta kommer bara att uppdatera rader där ett av de andra fälten har ändrats. Observera att detta inte kommer att uppdatera rader där den ena är NULL och den andra inte är 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. Anonymisering av indirekta identifierare för att minska risken för åter-ID

  2. Hur man beräknar skillnaden mellan två datumtider i T-SQL

  3. ExecuteReader kräver en öppen och tillgänglig anslutning. Anslutningens nuvarande tillstånd är Ansluter

  4. 3 SQL Server-övervakningsfrågor att ställa när man tar över en DBA-position