Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Perbarui beberapa kolom dalam pernyataan MERGE ORACLE

Saya tidak berpikir Anda perlu loop. Saya berasumsi id Anda adalah kunci utama dan Anda tidak bermaksud mengulangi engkol beberapa kali dalam contoh Anda.

Apakah hal seperti ini akan berhasil?

Edit per komentar Raj A. Ini hanya akan memperbarui baris di mana salah satu bidang lainnya telah berubah. Perhatikan bahwa ini tidak akan memperbarui baris yang satu NULL dan yang lainnya bukan 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. Perbedaan antara Fungsi Tabel dan Fungsi Pipeline?

  2. Tidak Dapat Mengkompilasi GI 12.1.0.2 dan Kesalahan Segmentasi

  3. ORACLE SQL:Dapatkan semua bilangan bulat di antara dua angka

  4. Pemantauan SQL di Pengembang SQL

  5. DBCA Buat Database buruk REMOTE_LISTENER