• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >数据库其它 > SQL语句实现删除重复记录并只保留一条

SQL语句实现删除重复记录并只保留一条

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了sql语句实现分页,sql语句实现修改,sql删除语句,删除表的sql语句,删除列的sql语句等相关知识,希望本文的分享对您有所帮助

delete WeiBoTopics where Id in(select max(Id) from WeiBoTopics group by WeiBoId,Title having COUNT(*) > 1);
</div>

SQL:删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
</div>
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)
</div>

3、查找表中多余的重复记录(多个字段)
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
</div>

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)
</div>

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) 
</div>

6.消除一个字段的左边的第一位:
update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'
</div>

7.消除一个字段的右边的第一位:
update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'
</div>

8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录
update vitae set ispass=-1 where peopleId in (select peopleId from vitae group by peopleId,seq having count(*) > 1) and seq in (select 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)
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SQL语句实现删除重复记录并只保留一条

相关文章

  • 2017-05-11关于若干数据库数据插入性能的对比分析
  • 2017-05-11MySQL与Oracle数据类型对应关系(表格形式)
  • 2017-05-11sql语句中where和having的区别
  • 2017-05-11介绍PostgreSQL中的Lateral类型
  • 2017-05-11收藏的SQLServer技巧集
  • 2017-05-11sql小计汇总 rollup用法实例分析
  • 2017-05-11简单分析SQLite4的一些设计改变
  • 2017-05-11Maven nexus 安装nexus私服出现的问题和解决办法
  • 2017-05-11也许是被忽略的update语句(update技巧)
  • 2017-05-11详解SQLite中的查询规划器

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • SQL服务器面临的危险和补救.读[十种方法]后感.
    • 超大数据量存储常用数据库分表分库算法总结
    • 数据库缓存及优化
    • 以前架征途时的合区的SQL语句代码备份
    • MySQL与Oracle SQL语言差异比较一览
    • 替换一个字段的所有非数字字符为空的sql语句
    • 数据库学习建议之提高数据库速度的十条建议
    • 数据库设计规范化的五个要求 推荐收藏
    • 比较SQL Server与Oracle、DB2数据库的一些知识
    • MySQL与Oracle 差异比较之七 其它

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有