一张表里重复记录删除只剩一条怎么弄

pursuade 2005-08-02 10:45:37
我有一张基本表
里面不同类别的重复记录有很多
我想把重复记录删除掉 不同类别的记录只剩一条怎么做

比如表aa
A B C
11 30 q
11 30 q
14 15 b
14 15 b
我要达到的目的是
A B C
11 30 q
14 15 b
...全文
143 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxiaoma 2005-08-02
  • 打赏
  • 举报
回复
select distinct * into #aa from 表

truncate table 表
insert into 表 select *from #aa
jiushaoye 2005-08-02
  • 打赏
  • 举报
回复
用临时表,一楼就可以.
ahFaye 2005-08-02
  • 打赏
  • 举报
回复
支持临时表
GRLD8888 2005-08-02
  • 打赏
  • 举报
回复
如果表中数据不是很多的话,用游标也是可以的
建军黄 2005-08-02
  • 打赏
  • 举报
回复
先找出最大的重复数

然后用循环语句将重复纪录一条一条的删除
YoungMonkey 2005-08-02
  • 打赏
  • 举报
回复
-- 查出唯一纪录生成临时表
SELECT DISTINCT * INTO #tmp FROM aa
-- 清空原表数据(数据量大建议用TRUNCATE TABLE,不写日志,速度快很多)
TRUNCATE TABLE aa
-- 导入处理后的数据
INSERT INTO aa SELECT * FROM #tmp
sunqi_790817 2005-08-02
  • 打赏
  • 举报
回复
select A,B,C into #tmp from aa group by A,B,C
drop table aa
select * into aa from #tmp
drop table #tmp
sasacat 2005-08-02
  • 打赏
  • 举报
回复
select distinct * into #tmp from aa
delete from aa
insert into aa select * from #tmp
rivery 2005-08-02
  • 打赏
  • 举报
回复
select distinct * into #t
from aa
delete from aa
insert into aa
select *
from #t
drop table #t
flyorgao 2005-08-02
  • 打赏
  • 举报
回复
建议用临时表
fishead37 2005-08-02
  • 打赏
  • 举报
回复
select * into #b from #aa group by a,b,c having count(*)>1 --把不止一条的复制到别的表中

delete from #aa where a in (
select a from #aa group by a,b,c having count(*)>1) --只删除重复记录,不重复的不删除


insert #aa --把重复,复制到原表中。
select * from #b group by a,b,c having count(*)>1
filebat 2005-08-02
  • 打赏
  • 举报
回复
把临时表改成表变量会更好一些.

游标,求最大值什么的就没有必要了吧!!!

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧