Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zaktualizuj wiele kolumn w instrukcji MERGE ORACLE

Myślę, że nie potrzebujesz pętli. Zakładam, że twoje identyfikatory są kluczami podstawowymi i nie chciałeś powtarzać kilka razy w swoim przykładzie.

Czy coś takiego zadziała?

Edytuj zgodnie z komentarzem Raja A. Spowoduje to zaktualizowanie tylko wierszy, w których zmieniło się jedno z pozostałych pól. Pamiętaj, że nie zaktualizuje to wierszy, w których jeden jest NULL, a drugi nie jest 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. Zarządzany sterownik ODP.NET nie wyświetla się w oknie dialogowym Źródło danych

  2. Połączenie z bazą danych Oracle w web.config asp.net

  3. Jak wyświetlić wszystkie tabele w Oracle?

  4. Programy obsługi instalacji Oracle Pro*C/OCI dla SIGSEGV/SIGABRT i znajomych — dlaczego i jak wyłączyć?

  5. Składnia starego łączenia zewnętrznego Oracle — po co umieszczać (+) po prawej stronie znaku równości w lewym sprzężeniu zewnętrznym?