MSSQL sql server 2005/2008 row_number()函數應用之–刪除表中重
阿新 • • 發佈:2018-05-11
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()函數應用之–刪除表中重