從rowid操作相同記錄

YallonKing發表於2012-03-26
/* 群裡的一個哥們問的問題,具體如下:
update a set bs='1' where x in(select x from a group by x having count(*)>1)
這個是給重複的資料都加賦值了1 我想留下重複中的一條不賦值,求高手指點
*/
 
SQL> select * from oraking;
        ID NAME
---------- ----------
         1 oraking
         1 oraking
         2 yallonking
         2 yallonking
SQL> select * from oraking where rowid in (select max(rowid) from oraking group by id,name);
        ID NAME
---------- ----------
         1 oraking
         2 yallonking
SQL> update oraking set name='小龍真帥' where rowid in (select max(rowid) from oraking group by id,name);
2 rows updated.
SQL> commit;
Commit complete.
SQL> select * from oraking;
        ID NAME
---------- ----------
         1 oraking
         1 小龍真帥
         2 yallonking
         2 小龍真帥

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26143577/viewspace-719579/,如需轉載,請註明出處,否則將追究法律責任。

相關文章