Oracle
 sql >> база данни >  >> RDS >> Oracle

Актуализирайте множество колони в израза MERGE ORACLE

Не мисля, че имаш нужда от примката. Предполагам, че идентификаторите ви са първични ключове и не сте искали да повторите манипулацията няколко пъти в примера си.

Ще работи ли нещо подобно?

Редактиране според коментара на Raj A. Това ще актуализира само редове, където едно от другите полета е променено. Имайте предвид, че това няма да актуализира редове, където единият е NULL, а другият не е 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо да използвате клауза JOIN срещу условие WHERE?

  2. C# параметризирани заявки за Oracle - сериозна и опасна грешка!

  3. Инсталиране на RAC за база данни с файлове с данни

  4. Как да намеря разлика между стойностите на формата TIMESTAMP в Oracle?

  5. R12.2 Определяне и настройка на изданието