26  
查询码: 00000292
SQL2005中如何删除某字段重复的数据
作者: 周杨 于 2019年03月28日 发布在分类 / 计算机应用 / 数据库 / SQLSERVER ,于 2019年03月28日 编辑
数据 重复 select 字段 查询 删除 students address 结果 类型

转自:http://www.360doc.com/content/18/0625/16/833305_765289549.shtml


依下图Students表内容为例,Id_P列不同,Id_P类型为int,自增字段

一、查询重复的数据

(Name,Address,City列值重复)

SELECT Name, Address, City, COUNT(*) AS CountStudents

FROM Students

GROUP BY Name, Address, City

HAVING (COUNT(*) > 1)

查询结果如下图:

通过查询结果可以看出Name,Address,City列值重复的有哪些及重复次数


SELECT MAX(Id_P) AS MAXId_P

FROM Students

GROUP BY Name, Address, City

查询结果如下图:

依Name, Address, City分组查询Id_P最大值,这样查询的结果就不包含重复的Id_P值


SELECT *

FROM Students

WHERE (Id_P IN

(SELECT MAX(Id_P) AS MAXId_P

FROM Students AS Students_1

GROUP BY Name, Address, City))

查询结果如下图:

查询结果没有重复的数据,可以把MAX(Id_P)改成MIN(Id_P)


DELETE FROM Students

WHERE     (Id_P NOT IN

(SELECT MAX(Id_P) AS MAXId_P

FROM Students AS Students_1

GROUP BY Name, Address, City))

删除重复的数据,注意Id_P后面"NOT IN"



 历史版本

备注 修改日期 修改人
CREAT 2019-03-28 15:02:29[当前版本] 系统管理员

 附件

附件类型

JPGJPG

知识分享平台 -V 5.1.4 -大信谛威