宝哥软件园

用SQL查找重复记录或删除重复记录

编辑:宝哥软件园 来源:互联网 时间:2021-08-04

类型:电子教程大小:8.5M语言:中文评分:8.3标签:立即下载。有时我们需要删除SQL SERVER中的重复记录。如何使用SQL命令删除重复的记录?这是一个非常有用的教程。

西溪边肖网站有很多重复记录,都是用这个SQL语句处理的。

1.在表中查找冗余重复记录,重复记录根据单个字段(peopleId)判断:从peopleid所在的人员中选择*从peopleid所在的人员组中选择peopleid按人数(peopleid) 1)示例2:从人数ber所在的测试表中选择*从人数组中选择人数按人数(人数)1)可以找出测试表2中人数相同的记录。删除表中多余的重复记录,根据单个字段(peopleId)判断重复记录,只留下行Id最小的记录。从以下人员中删除:人员id在(按人员id计数(人员id) 1从人员组中选择人员id)和行id不在(按人员id计数(人员id) 1从人员组中选择分钟(行id)3。在表中查找冗余重复记录(多个字段)从简历a中选择*其中(a. peopleid,A. seq)在(按peopleid从简历组中选择peopleid,seq具有计数(*) 1) 4中。删除表中多余的重复记录(多个字段)。只剩下rowid最小的记录。从简历中删除a,其中(a. peopleid,a. seq)在(按peopleid从简历组中选择peopleid,seq具有计数(*) 1)中,而rowid不在(按peopleid从简历组中选择min (rowid),seq具有计数(*) 1) 5中。在表中查找冗余的重复记录(多个字段)。不包括具有最小rowid的记录。从简历a中选择*其中(a.peopleid,a.seq) in(选择peopleid,按peopleid从简历组中选择seq,具有计数(*) 1)和rowid not in(按peopleid从简历组中选择min (rowid),具有计数(*) 1)例如,表a中有一个字段“name”,不同记录中“name”的值可能相同,因此有必要找出该表中记录中“name”的值是否存在重复项。从具有计数(*) 1的名称组中选择名称,计数(*)如果性别也是相同的大小,则如下所示:从具有计数(*) 1 (3)的名称组中选择名称,性别,计数(*)方法1声明@ maxinteger,@ id integer声明cur _ rows cursor local用于选择主字段,从具有计数(*)的主字段的表名组中选择计数(*);1打开cur_rows将cur_rows蚀刻成@id,@ maxwhile @ @ fetch _ status=0 begin select @ max=@ max-1 set rowcount @ max delete从表名中,其中main字段=@idfetch cur_rows蚀刻成@id,@ maxendclosecur _ rowsetrowcount 0方法2在某种意义上有两个重复的记录,一个是完全重复的记录,即具有重复字段的记录,另一个是具有重复键字段的记录,如name字段,而其他字段不一定重复或可以忽略。1.对于第一种重复,很容易解决。通过使用tableName中的select distinct *可以获得没有重复记录的结果集。如果需要删除此表中的重复记录(保留一条重复记录),您可以删除select distinct * in # tmp from table name drop table name select * in table name from # tmp drop table # tmp,如下所示。这种重复的原因是表的设计不佳,可以通过添加唯一的索引列来解决。2.这种重复问题通常需要在重复记录中保留第一条记录。操作方法如下:假设重复字段为name、Name、Address,要求这两个字段的结果集唯一:选择identity (int,1,1)作为autoid。*进入# Tmp from tablename select min(AutoID)作为autoID进入#Tmp2 from #Tmp group by Name,AutoID select * from # tmp其中autoid in(从#Tmp2中选择autoID)最后一次选择得到的结果集没有重复的名称和地址(但多了一个autoID字段,在实际编写中,可以在select子句中省略此列。(4)重复查询从表名中选择*其中id在(通过具有计数(id) 1的id从表名组中选择id)

更多资讯
游戏推荐
更多+