Sql Oracle查找和更新列

Sql Oracle查找和更新列,sql,oracle,Sql,Oracle,我有一个包含多条记录的表,我想从表中查找并更新重复的记录id: 我想通过description列将id“16”更新为19或100 select * FROM table1 WHERE description = 'Online Portal' 通过这个,我可以找到重复的值 update table set id = 21 where description = 'Online Portal' ; 这样,它会同时更新两个记录的id,但我只希望其中一个更改这应该可以通过查找min ro

我有一个包含多条记录的表,我想从表中查找并更新重复的记录id:

我想通过description列将id“16”更新为19或100

 select * FROM table1
  WHERE description = 'Online Portal'
通过这个,我可以找到重复的值

  update table set id = 21 where description = 'Online Portal' ;

这样,它会同时更新两个记录的id,但我只希望其中一个更改

这应该可以通过查找min rowid来实现

update table T set id = 21 where description = 'Online Portal' AND ROWID > (SELECT MIN(ROWID) FROM TABLE X WHERE X.DESCRIPTION = T.DESCRIPTION);
你可以试试这个:

        update table1 set id = 21 where ROWIDTOCHAR(rowid) =
        (
          select ROWIDTOCHAR(rowid) rid  from table1 
          WHERE description = 'Online Portal' and rownum = 1
         )