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

Zaktualizuj kolumnę tej samej tabeli, jeśli istnieją zduplikowane rekordy

Możesz użyć funkcji analitycznej row_number() i rowid aby uzyskać wiersze:

UPDATE test_dup
   SET done = 'error'
 WHERE ROWID IN (SELECT ROWID
                   FROM (SELECT acc_num, tel_num, imsi, ROW_NUMBER () OVER (PARTITION BY acc_num, tel_num, imsi ORDER BY acc_num) AS ROW_NUMBER FROM test_dup)
                  WHERE ROW_NUMBER > 1)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zabawne podzapytanie Oracle

  2. Oracle wybierz wartość do pierwszego miejsca lub końca wiersza

  3. Jak używać typu BOOLEAN w instrukcji SELECT

  4. Wstawić do tabeli przy użyciu zestawu wyników podwójnego zapytania?

  5. Wycofanie zmian w wyjątku PLSQL