www.4658.net > SQL语句删除重复的记录

SQL语句删除重复的记录

你把sql语句改下: select distinct 字段 from 表 如果有重复数据,那么他只显示一条!

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、删除表中多余的重复记录,重复记录是根据单个...

delete from部门 where 姓名 in (select 姓名 from 部门 group by 姓名 having count(姓名) > 1);

select col1,col2,col3 from (select col1,col2,col3, row_number() over(partition by col1 order by col2 desc) rn from table_name ) a where rn=1

1, 完全相同的数据,需要先区分出每条数据才能进一步操作。 添加自增长列以用编号区分不同的数据行。 alter table 表名 add id int identity(1,1) -- 添加自增长列 id 2,根据编号删除数据 delete from table a where id not in (select max(id...

题主可 参考下列例句: 删除表t1字段col1有重复的记录 delete from t1 where exists (select 1 from (select col1 from t1 group by col1 having count(1)>1) t where t.col1=t1.col1); 如果希望对于有重复的记录希望保留其中一条记录而不是全部...

表结构如下 test (id int,name varchar2,age int) 1 张三 10 2 张三 10 3 李四 20 4 李四 20 5 王五 19 除了id外其他字段全部相同的记录只保留一条 删除多余的记录 delete test where id not in(select max(id) from test group by name,age) 如...

1、必须保证表中有主键或者唯一索引,或者某列数据不能重复。只有这样,才可能使用一句SQL来实现。否则只能考虑其它办法。下面的语句,假定BB列是不重复的,删除后保存BB列值最大的那条记录。 delete from 表 where aa in (select aa from 表 gr...

delete from tab where ROWID IN ( SELECT ROWID FROM (SELECT RANK()OVER(PARTITION BY 重复字段 ORDER BY ROWID) t FROM tab WHERE 重复字段 IN (select name1 from tab group by 重复字段 HAVING COUNT(重复字段)>1)) WHERE t>1);

delete from table where type = 'P' and xtype = '3' and execTime not in ( select max(execTime) as execTime from table where type = 'P' and xtype = '3' ) 上述语句是基于最近修改的时间一定是所有重复数据中的最大的。

网站地图

All rights reserved Powered by www.4658.net

copyright ©right 2010-2021。
www.4658.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com