免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2479 | 回复: 8
打印 上一主题 下一主题

怎样在表中删除重复的行??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-18 14:24 |只看该作者 |倒序浏览
如题,谢谢了

论坛徽章:
0
2 [报告]
发表于 2004-02-18 14:32 |只看该作者

怎样在表中删除重复的行???

del all insert one

论坛徽章:
0
3 [报告]
发表于 2004-02-18 14:43 |只看该作者

怎样在表中删除重复的行???

我里面的记录超过10万条也
重复记录也有5000多,

注,ORACLE数据库

论坛徽章:
0
4 [报告]
发表于 2004-02-18 14:49 |只看该作者

怎样在表中删除重复的行???

delete from emp_list
where rowid!=(select max(user_id) from emp_list d
where emp_id.user_id=d.user_id
and emp_id.desc=d.dec);

论坛徽章:
0
5 [报告]
发表于 2004-02-18 14:59 |只看该作者

怎样在表中删除重复的行???

我是菜鸟,不明白

呵呵

论坛徽章:
0
6 [报告]
发表于 2004-02-18 15:01 |只看该作者

怎样在表中删除重复的行???

可以利用这样的命令来删除表内重复记录:

delete from table_name a

where rowid< (select max(rowid) from table_name

where column1=a.column1 and column2=a.column2

and colum3=a.colum3 and ...);

  不过,当表比较大(例如50万条以上)时,这个方法的效率之差令人无法忍受,需要另想办法

论坛徽章:
0
7 [报告]
发表于 2004-02-18 15:38 |只看该作者

怎样在表中删除重复的行???

哦,哥们 这样啊
我有14个这样的表要处理哦。,
那不是也要很长时间啊

论坛徽章:
0
8 [报告]
发表于 2004-02-18 17:18 |只看该作者

怎样在表中删除重复的行???

如果你嫌楼上的老兄的方法效率不高,速度太慢的话。建议用如下方法试试:

     分析你需要处理的表a,确定在实际使用中是依靠什么来判定记录重复的,即确定关键项(比如是a表的b列);用如下命令:

    select distinct(b) from a
  (    如果b是日期型的,用select distinct(to_char(b)) from a      )

然后用select的结果集作为搜索的种子,去在a表中搜索b项值相同的记录,然后选择性的或全部比较结果记录的项是否与种子记录相同,从而确定需删除的记录的ROWID.

   这个办法主要目的是缩小搜索范围,但是要对数据有一定的理解。

论坛徽章:
0
9 [报告]
发表于 2004-02-18 18:02 |只看该作者

怎样在表中删除重复的行???

one of some method  is

1.create a exception table using $ORACLE_OME/rdbms/admin/utlex???.sql (忘了)

2.create a unique constraint with clause

  1. ....
  2. Exceptions into exceptions
复制代码


3.if there is dup row
you can find the row_id in the exception table

4.delete dup row accoding exceptions table


  1. delete from table where rowid in (select row_id from exception)

复制代码


大概如此,具体column name,script自己再看看吧

好久不碰oracle了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP