MSSQL sql server 2005/2008 row_number()函数应用之–删除表中重
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSSQL sql server 2005/2008 row_number()函数应用之–删除表中重相关的知识,希望对你有一定的参考价值。
转自:http://www.maomao365.com/?p=4942
**row_number函数在数据库中的功能是为每一行 按照一定的规则生成一个编号,
我们常常利用这一属性,对表进行分页操作,
下文我们将讲述采用 row_number函数删除表中重复数据行**
/*建表*/
create table A(keyId int,info varchar(200))
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,‘猫猫小屋‘),
(1,‘a‘),(6,‘b1‘),(7,‘C1‘),(4,‘d000‘),(10,‘maomao365.com‘)
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
以上是关于MSSQL sql server 2005/2008 row_number()函数应用之–删除表中重的主要内容,如果未能解决你的问题,请参考以下文章
SQL SERVER - 通过 SQLCMD 和 MSSQL 运行 SQL 脚本时相同的代码不同的结果