SQL查询一个表中重复的名字

2024-12-28 00:20:05
推荐回答(3个)
回答1:

总结:

两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

1、(1)对于第一种重复,比较容易解决,使用复制代码代码如下:select distinct * from tableName

(2)如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除,复制代码代码如下:

select distinct * into #Tmp from tableName

drop table tableName

select * into tableName from #Tmp
drop table #Tmp

2、假设有重复的字段为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)



回答2:

select 儿童姓名,Count(儿童姓名) from child group by 儿童姓名 having Count(儿童姓名) >1

要删除的话 可以这么操作,比如 只保留相同姓名中的ID最大的记录

则是

delete from child where id not in(select max(id) from child group by 儿童姓名)

回答3:

select distinct 班级FROM 表名称