首页 >> 知识 >> 数据库去除重复记录

数据库去除重复记录

最近遇到一个面试题,所以跟大家分享下:

   如何删除数据库中重复的记录

  一般情况下,数据库去重复有以下那么三种方法:

      第一种:

 两条记录或者多条记录的每一个字段值完全相同,这种情况去重复最简单,用关键字distinct就可以去掉。例:

SELECT DISTINCT * FROM TABLE

      第二种:

 两条记录之间之后只有部分字段的值是有重复的,但是表存在主键或者唯一性ID。如果是这种情况的话用DISTINCT是过滤不了的,这就要用          到主键id的唯一性特点及group by分组。例:

SELECT * FROM TABLE WHERE ID IN (SELECT MAX(ID) FROM TABLE GROUP BY [去除重复的字段名列表,....])

     第三种:

两条记录之间之后只有部分字段的值是有重复的,但是表不存在主键或者唯一性ID。这种情况可以使用临时表,讲数据复制到临时表并添加一        个自增长的ID,在删除重复数据之后再删除临时表。例:

//创建临时表,并将数据写入到临时表SELECT IDENTITY(INT1,1) AS ID,* INTO NEWTABLE(临时表) FROM TABLE//查询不重复的数据SELECT * FROM NEWTABLE WHERE ID IN (SELECT MAX(ID) FROM NEWTABLE GROUP BY [去除重复的字段名列表,....])//删除临时表DROP TABLE NEWTABLE

网站地图