sql中如何删除一个表中重复的纪录
假设我有一个表table key id name 1 | 1001 | 张飞 2 | 1001 | 张飞 3 | 1002 | 关羽 4 | 1003 | 刘备 5 | 1004 | 马超 6 | 1004 | 马超 7 | 1005 | 曹操 很明显,张飞的记录重复了,我要删除任意一条重复的纪录该如何操作?如果我想指定删除按照key排序的第二条重复纪录我该如何写sql?我的意思是我要删除key为2和6的这两条记录,因为他们是第二次出现的。当然了,最首要实现的是能删除一条重复的,不管怎么删,只要能让我保证数据的唯一性就行。如果id相同就可以判定两条记录重复了,name是否相同并不重要。
用distinc命令可以去掉重复命令比如: select distinct id from table 或者使用uniqe替代distinct都是一样得 但这只能在显示结果中显示并没有实际改变表中得值 不过你可以写一个update命令使表中数据改变 大概是大概是delete from table where id=distinct(id) 不知对不对,但是排除重复记录得语句肯定是distinct我用的是oracle数据库测试成功
表设计的确存在问题! 我想解决办法可以有两种: 1、如果有前台编程,可以在代码中进行判断处理删除提交即可。 2、可以使用游标,在定义游标时,要对ID列进行ORDER BY排序,然后循环判断,如果当前记录和上一条记录ID重复,就删除当前行。 至于用一句SQL语句来实现,我想了半天,没想出来! 下面这句话,可以找到重复的ID记录行。 select key,id from test group by id having count(id) > 1; 但这是一个结果集,保留和删除的记录行都在一起,仍然不能够做为删除语句的唯一条件。
数据库设计本身就有问题! 建用ID作为主键! 像1 2这样的记录根本就没有意义嘛!
问:在e xcel中如何自动删除重复记录?即保证数据记录的唯一性
答:看看我的附件,要求从小到大或者从大到小排都可以,方法提供两种。详情>>
答:不知道你是不是写错文件名了,pdf?详情>>
答:当电脑的全部组件(包括软件)我们国家都能生产的时候。详情>>