SQLServer查询去重

本文介绍了两种SQL中实现数据去重的方法:使用DISTINCT关键字去除指定字段的重复数据,以及利用row_number() over()函数实现更复杂的去重逻辑,适用于需要按特定条件筛选唯一记录的场景。

第一种: Distinct

 SELECT Distinct列名称 FROM 表名称

e.g. 

 

 SELECT Distinct userid FROM UserInfo;

但是Distinct只能放在字段的开头,如果多个字段,将不会去重。

SELECT Distinct userid, id FROM UserInfo;

 

第二种,row_number() over() 函数

SELECT
 top 10
  *
FROM
(
SELECT
     *
FROM
    (
    SELECT
        a,b,c,d,
        ROW_NUMBER () OVER ( Partition BY a ORDER BY b ) AS row 
    FROM
        tab_name1
    ) p 
WHERE
p.row =1
) as aa
LEFT JOIN tab_name2 b ON aa.xx = b.xx

 

参考:

https://blog.csdn.net/qq_36330228/article/details/84174817

https://www.cnblogs.com/huangtailang/p/4274975.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值