利用row_number() ,over和partition by 语句来操作指定字段重复的数据

本文介绍了在SQL Server 2014中利用row_number()、over()和partition by语句来操作和删除重复数据的方法。通过创建flag字段标记重复记录,并依据flag值进行数据筛选,从而实现保留唯一数据或删除重复数据的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件:sql server 2014
核心语句:
select row_number() over (
partition by 重复字段 order by 排序字段
) as flag, * from 表名

1 准备语句:

drop table eDelRepeatData
create table eDelRepeatData
    (
        ID int identity(1,1) ,
        aaa int,
        bbb  int,
        ccc int
        )
Insert Into eDelRepeatData(aaa,bbb,ccc)
    Select 1,2,3
    union all
    Select 1,2,3
    union all
    Select 1,2,3
    union all
    Select 3,2,1
    union all
    Select 3,2,1
    union all
    Select 4,5,6

测试下:select * from eDelRepeatData
图1
由结果见,字段aaa,bbb,ccc三个字段都重复的数据有ID为1,2,3这三条重复,4,5重复;

2 接下来就是对数据进行分组:

select row_number() over (
    partition by aaa, bbb, ccc order by id
) as flag, * from
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值