Oracle
 sql >> Base de données >  >> RDS >> Oracle

Instruction UPDATE :réévaluer la sous-requête après chaque SET

Essayez d'utiliser l'instruction suivante. Votre table ne permet pas d'identifier une ligne par exemple avec ID=2 donc pour lier la table avec ROW_NUMBER vous pouvez utiliser ROWID

UPDATE
Test 
SET id = (SELECT RN FROM
                     (SELECT ROW_NUMBER() 
                             OVER (ORDER BY ID) as RN 
                             FROM Test
                     ) T1
                     WHERE T1.RowID=Test.RowID
          )

Démo SQLFiddle