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

安装的是一个SQL2000数据库,我想查询一个表(child)中,里面儿童姓名重复的个案怎么写这个语句 ?
如果查询出重复的,怎么可以让其中一个删除呢?
请高手帮我,谢谢!

总结:

两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如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)



温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-29
select 儿童姓名,Count(儿童姓名) from child group by 儿童姓名 having Count(儿童姓名) >1

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

则是

delete from child where id not in(select max(id) from child group by 儿童姓名)
第2个回答  2017-06-13
select distinct 班级FROM 表名称
相似回答