主要是利用Oracle中记录行的rowid唯一。 去除重复记录(注意多次执行直到影响记录为0行)
- delete from WBH_TEMP2 where terminal_id in (
- select terminal_id from WBH_TEMP2 group by terminal_id having count(*)>1)
- and rowid in (select max(rowid) from WBH_TEMP2 group by terminal_id having count(*)>1)
与上面一条等价,这条执行一次即可去除重复记录
- delete from WBH_TEMP2 where terminal_id in (
- select terminal_id from WBH_TEMP2 group by terminal_id having count(*)>1)
- 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)