您的位置:首页 > 数据库

sql 删除表中多余的重复记录(多个字段),只保留一条记录

2013-01-24 17:01 621 查看
SELECT * into PT_PROGRAM_TAG0

FROM [IAR_DB].[dbo].[PT_PROGRAM_TAG]

with aa

as(

select count(*) as c from PT_PROGRAM_TAG0 group by PROGRAMID,TagID,TypeID having count(*) > 1

)

select SUM(c) from aa

with b as(select PROGRAMID,TagID,TypeID,MIN(id) as minid from PT_PROGRAM_TAG group by PROGRAMID,TagID,TypeID having count(*) > 1)

delete [PT_PROGRAM_TAG] where ID in(

select a.id from PT_PROGRAM_TAG a

where exists(select PROGRAMID,TagID,TypeID from b where PROGRAMID=a.PROGRAMID and TagID=a.TagID and TypeID=a.TypeID and a.id<>b.minid )

)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐