sql语句重复数据的查找和删除
一、查找重复记录
1.查找全部重复记录
单字段:
Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
多字段:
select id from 表 a where id !=(select max(id) from 表 b where a.[OrderNo]=b.[OrderNo] and a.[OrderType]=b.[OrderType] and a.[LNID]=b.[LNID])
2.过滤重复记录(只显示一条)
Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)
注:此处显示ID最大一条记录
二、删除重复记录
1.删除全部重复记录(慎用)
单字段:
Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
多字段:
Delete FROM dbo.table where id in ( select id from dbo.table a where id !=(select max(id) from dbo.table b
where a.[OrderNo]=b.[OrderNo] and a.[OrderType]=b.[OrderType] and a.[LNID]=b.[LNID]))
2.保留一条(这个应该是大多数人所需要的 _)
Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)
注:此处保留ID最大一条记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下