27,579
社区成员
发帖
与我相关
我的任务
分享
--1. 将原表备份,防止意外
SELECT *
INTO kehu_bak_20180412
FROM kehu
--2. 删除重复数据
;WITH cte as (
SELECT ROW_NUMBER() OVER(PARTITION BY [name] ORDER BY id) AS rid,* FROM kehu
)
DELETE FROM cte WHERE rid>1
--3. 查询name 的所有信息
SELECT [name] FROM kehu
declare Cur cursor
for
select Name,Num=count(*)-1 from TableA group by Name having count(*)>1
declare @Name varchar(100),@Num int
open Cur
fetch next from Cur into @Name,@Num
while @@fetch_status=0
BEGIN
set rowcount @Num
delete TableA where Name=@Name
fetch next from Cur into @Name,@Num
END
close Cur
deallocate cur
select *
from (select *,ROW_NUMBER() over (PARTITION by name order by id) as seq from kehu) as A
where seq=1