MSSQL sql server 2005/2008 row_number()函数应用之–删除表中重复记录,只保留一条不重复数据

转自:http://www.maomao365.com/?p=4942数据库

下文主要讲述:重复数据只获取一条的方法函数

row_number函数在数据库中的功能是为每一行 按照必定的规则生成一个编号,
咱们经常利用这一属性,对表进行分页操做,下文咱们将讲述采用 row_number函数删除表中重复数据行spa

/*建表*/
create table A(keyId int,info varchar(20)) go 
/*生成数据*/
insert into A(keyId,info)values (1,'a'),(2,'b'),(3,'C'),(4,'d'),(5,'e'), (1,'a'),(21,'b1'),(31,'C1'),(4,'d'),(51,'e'), (1,'a'),(6,'b1'),(7,'C1'),(4,'d000'),(10,'e') go


/*删除 keyId重复数据 中的另外几条*/
delete [A2] from (select row_number() over (Partition By keyId order by keyId) as keyId2,* from A ) as [A2]
where [A2].keyId2  >1 
 

/* /*删除 全部列都重复数据 中的另外几条*/
delete [A2] from (select row_number() over (Partition By keyId,info order by keyId) as keyId2,* from A ) as [A2]
where [A2].keyId2  >1 
 */

/*展现删除后的数据*/

select * from A go

truncate table A drop table A go
相关文章
相关标签/搜索