Welcome 微信登录

首页 / 数据库 / MySQL / Oracle中删除重复记录行

主要是利用Oracle中记录行的rowid唯一。 去除重复记录(注意多次执行直到影响记录为0行)
  1. delete from WBH_TEMP2 where terminal_id in (   
  2. select terminal_id from WBH_TEMP2 group by terminal_id having count(*)>1)   
  3. and rowid in (select max(rowid) from WBH_TEMP2 group by terminal_id having count(*)>1)  
与上面一条等价,这条执行一次即可去除重复记录
  1. delete from WBH_TEMP2 where terminal_id in (   
  2. select terminal_id from WBH_TEMP2 group by terminal_id having count(*)>1)   
  3. and rowid not in (select min(rowid) from WBH_TEMP2 group by terminal_id having count(*)>1)  
大量数据的时候建议用CTAS create table WBH_TEMP3 as select terminal_id from WBH_TEMP2 group by terminal_id 这样子WBH_TEMP3中就是去除重复的记录了。 Oracle字符串的连接聚合函数可用于group byOracle中先ORDER BY再ROWNUM相关资讯      oracle数据库教程 
  • Oracle raw数据类型介绍  (01/29/2013 10:05:53)
  • 监听器注册与ORA-12514 错误分析  (11/13/2012 14:30:08)
  • Oracle SQL的cursor理解  (11/13/2012 14:16:17)
  • Oracle 如何强制刷新Buffer Cache  (01/29/2013 10:02:46)
  • dblink致Oracle库的SCN变成两库的  (11/13/2012 14:24:41)
  • Linux操作系统下完全删除Oracle数  (11/13/2012 08:25:52)
本文评论 查看全部评论 (0)
表情: 姓名: 字数
<