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

转载于:https://blog.51cto.com/13618148/2115142

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值