oracle 删除表中重复记录

delete t1 where rowid in
(
select rowid
from (
select row_Number() over(partition by t1.asset_code order by t1.asset_code) xh,t1.rowid
from t1
) where xh>1
)

 

解释一下,两个知识点:

1,rowid,此为伪列,每个表在创建的时候都会自动创建此列,rowid是存储每条记录的实际物理地址,对记录的访问是基于ROWID。 
对数据库中记录行的作快检索方式就是使用rowid来进行查找

2, row_Number() over() 函数的用法

posted @ 2021-10-13 15:48  Mike张  阅读(56)  评论(0编辑  收藏  举报