怎样删除数据库中重复的信息,只保留一条

来源:百度知道 编辑:UC知道 时间:2024/05/24 00:06:35
庞大的数据库中存在着很多重复的信息,怎样把他们删除呢?
比如:有一个user的表
id name tel city time ....
1 aa 1234
2 cc 4653
3 aa 1234
4 bb 89752
5 aa 1234
6 asd 54656
7 aaa 1234
我想把name和tel字段中重复的信息删掉
得出的结果如下:
id name tel city time ....
1 aa 1234
2 cc 4653
4 bb 89752
6 asd 54656
7 aaa 1234

请问各位高手怎样实现啊!

楼上太麻烦,这样写就可以
delete from user where exists(select 1 from user a where a.name=user.name and a.tel=user.tel and a.id<user.id)

这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集select identity(int,1,1) as autoID, * into #Tmp from tableName select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)