求教sqlserver排除颠倒重复的数据只保留1条

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教sqlserver排除颠倒重复的数据只保留1条相关的知识,希望对你有一定的参考价值。

--判断一个字段重复就只显示一条,用distinct是不行的,可以用row_number()根据这个字段分组显示优先级,然后只取每个组的第一条select * from(select *,row_number() over(partition by 判断重复的字段名) as f_id from 表名) twhere f_id =1 参考技术A 什么叫颠倒重复。 参考技术B 删除颠倒重复的数据值保留一条

DELETE a FROM dbo.Table_A a
INNER JOIN dbo.Table_A b ON a.bid=b.aid AND a.aid=b.bid AND b.abchangdu = a.abchangdu
WHERE a.bid>b.bid AND a.aid<b.aid

筛选颠倒重复的数据值保留一条
SELECT * FROM dbo.Table_A a
INNER JOIN dbo.Table_A b ON a.bid=b.aid AND a.aid=b.bid AND b.abchangdu = a.abchangdu
WHERE a.bid>b.bid AND a.aid<b.aid

保留的是【bid】较小的那一条

数据库怎样删除多条重复数据保留一条?

delete 表A where 重复的列名(可以是多列) in (select 重复的列名(可以是多列) from 表A group by 重复的列名(可以是多列) having (count(1)>1) ) where rowid!=(select min(rowid) from 表A group by 重复的列名(可以是多列)having (count(1)>1));
删除重复的数据,留下rowid最小的那条!
参考技术A 一张表里面以两个字段为唯一字段,当几条记录的这两个字段完全相同时,需要删除重复项,如下表:
a b c d
1 2 3 4
1 5 3 5
1 2 7 9
以a、b为唯一字段,第一条和第三条的a、b完全相同,所以,需要删除第一条记录1 2 3 4 或者第三条记录1 2 7 9
即如下结果:
a b c d
1 2 3 4
1 5 3 5

a b c d
1 5 3 5
1 2 7 9

以上是关于求教sqlserver排除颠倒重复的数据只保留1条的主要内容,如果未能解决你的问题,请参考以下文章

mysql删除完全重复行,求教

mysql 删除重复的数据保留一条

sql语句,选第一条数据

Oracle删除重复记录只保留一条数据的几种方法

SQL删除重复数据只保留一条数据

Oracle删除重复记录只保留一条数据的几种方法