免费注册 查看新帖 |

Chinaunix

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

删除重复数据求教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-30 09:31 |只看该作者 |倒序浏览
有一个字段的值 'a,b,c,a'
如何用将字段里面重复的'a'删除呢

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
2 [报告]
发表于 2011-06-30 09:55 |只看该作者
根据伪例rowid来删除。

论坛徽章:
0
3 [报告]
发表于 2011-06-30 09:57 |只看该作者
根据伪例rowid来删除。
renxiao2003 发表于 2011-06-30 09:55



    我原来也是这么想的。
   不过,这个不是LZ要的,LS没看清楚问题

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
4 [报告]
发表于 2011-06-30 10:09 |只看该作者
回复 3# doni


    确实,他的意思是对字段里的值进行处理。呵呵。

论坛徽章:
0
5 [报告]
发表于 2011-06-30 20:34 |只看该作者
导出数据库,用shell处理掉,再更新原表的这个字段

论坛徽章:
0
6 [报告]
发表于 2011-07-01 15:05 |只看该作者
本帖最后由 wodi1015 于 2011-07-04 11:01 编辑

我试过了 可以的
update tablename
   set columeName=null
where
rowid in
(
        select row_id
        from
        (
                 select rowid row_id, row_number() over (partition by columeName order by columeName) order_id from tablename
        ) temptable
        where temptable.order_id > 1
)

论坛徽章:
0
7 [报告]
发表于 2011-07-05 17:30 |只看该作者
本帖最后由 huangw425 于 2011-07-05 17:34 编辑

非常感谢LS给力的回复,理解上LS应该能将多记录下有重复值的列更新为空,

我想将某个字段内部重复的记录值清空,我再描述详细一点点:

B列的值用逗号做分隔符
如表结构有A、B两列,共有两条记录,第1条记录正常的,第2条记录是异常的,更新前:
A        B
1        a,b,c
2        a,b,a,c

希望将表里面像第2条记录,有重复值a出现的地方都清理掉(当然其他记录重复的值可能是b或c),更新后:
A        B
1        a,b,c
2        a,b,c

如果不是我的应用比较特殊,
bbgg1983 的方法应该可行,因为数据时刻使用,所以希望不导出数据在一个SQL下能处理.

原本有想法用存储过程,例如遍历此字段的值,逐个分析对比分隔符里面值是否有重复,有重复则substr掉其中一个,但是这样就要写一个函数才能实现
不知道有哪位用过oracle下的正则表达式没,能用来实现这样的需求不 ?

论坛徽章:
0
8 [报告]
发表于 2011-07-07 11:40 |只看该作者

论坛徽章:
0
9 [报告]
发表于 2011-07-20 11:10 |只看该作者
重复的值,有固定规律吗

论坛徽章:
1
白羊座
日期:2014-08-26 20:58:00
10 [报告]
发表于 2011-08-09 17:03 |只看该作者
正则表达式应该也处理不了,你这个应该是没什么规律的,只要包含了重复的就删除,可以写一个字符处理函数来解决你这个问题!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP