文档章节

sql删除重复记录

王念博客
 王念博客
发布于 2016/04/15 23:37
字数 456
阅读 168
收藏 20

用SQL语句,删除掉重复项只保留一条

在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 

select * from people 

where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 


2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 

delete from people 

where   peopleName in (select peopleName    from people group by peopleName      having count(peopleName) > 1) 

and   peopleId not in (select min(peopleId) from people group by peopleName     having count(peopleName)>1) 


3、查找表中多余的重复记录(多个字段) 

select * from vitae a 

where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 


4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 

delete from vitae a 

where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 

and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1) 


5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录 

select * from vitae a 

where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 

and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)   

6.消除一个字段的左边的第一位:

update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'

7.消除一个字段的右边的第一位:

update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'

8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录 

update vitae set ispass=-1

where peopleId in (select peopleId from vitae group by peopleId


mysql需要 把查询出来的结果再 select一下

比如 select * from t id in (select id form (select min(id) id from t group by no having count(no)>1)) )


本文转载自:

共有 人打赏支持
王念博客
粉丝 166
博文 102
码字总数 79063
作品 0
浦东
程序员
私信 提问
在Oracle中如何利用Rowid查找和删除表中的重复记录

平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录。 下面总结一下几种查找和删除重复记录的方法(以表CZ为例): 表...

mrliuze
2015/11/19
0
0
MySQL专题10之MySQL序列使用、MySQL处理重复数据、MySQL以及SQL的注入

1、MySQL序列使用 - MySQL序列是一组整数:1,2,3...,由于一张数据表只能有一个字段自增主键,如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 - 使用AUTOINCREMENT:MySQL...

极客微信条
2017/11/21
0
0
用SQL语句,删除掉重复项只保留一条

用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select fro...

ardong
2015/12/28
75
0
SQL Server distinct子句

在SQL Server(Transact-SQL)中DISTINCT子句用于从结果集中删除重复记录。 DISTINCT子句只能和SELECT语句一起使用。 语法 在SQL Server(Transact-SQL)中DISTINCT子句的语法是: SELECT D...

易百教程
2016/08/10
18
0
SQL语句使用大全,最常用的sql语句

下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRAN...

dong.li
2012/04/26
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Eos如何删除钱包

在使用Eos的keosd钱包软件时,如果要删除EOS中指定名称的钱包,最简单的办法是直接删除钱包文件,不过在删除钱包之前,需要先停止钱包软件的运行。 学习EOS应用开发要选这个:【EOS智能合约与...

geek12345
3分钟前
0
0
js操作时间

获取当前时间 function getSystemDate(){ var systemDate = new Date(); // 获取当年 var year = systemDate.getFullYear(); // 获取当月 (月+1是因为js中......

简心
10分钟前
0
0
区块链开发教程推荐

区块链的重要性已经毋庸置疑,但对大多数跃跃欲试的开发者而言,去中心化思想、非对称加密、共识算法等技术点的理解和运用,都是入门区块链开发的挑战。合适的区块链开发教程可以极大地缩短区...

笔阁
10分钟前
0
0
菜单menuView总结

1、FTPopOverMenu

_____1____
21分钟前
2
0
MyEclipse教程:Web开发——部署和测试Web项目

MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 本教程向用户展示了使用关联的Web项目创建Web片段项目的机制。用户还可以获得要检查的示例项目。在本教程中,用户将学习如...

电池盒
37分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部