SQL SERVER怎么去掉重复数据?

2024-11-29 03:44:21
推荐回答(5个)
回答(1):

首先,你的表设计就有问题。存在两行完全相同的数据。在设计表时,要设计一个primary key,主键。在维护数据方面,比较方便。

你用临时表,表变量的方式临时存储数据。再更新表内容。
用关键字distinct过滤掉重复的记录

select distinct * #t from a
insert into a
select * from #t
drop table #t
这样能除去重复的数据。

根据你的描述,group by 都不用了。

回答(2):

只进行一步操作是不太可能,借助临时表吧

create table table_tmp as select 字段1,字段2,字段3,字段4 from tablename group by 字段1,字段2,字段3,字段4;

然后清楚原表数据
truncate table tablename;

然后将临时表数据插入
insert into tablename select * from table_tmp

字段1,2,3,4是我起的,你表里有几个字段你写几个字段好了

回答(3):

1.按原表的表结构建个新的临时表
2.将原表中的重复数据各插入一条至临时表
insert into Tb_tmp select 字段1,字段2,字段3,……字段n from 表A group by 字段1,字段2,字段3,……字段n having count(*)>1
3.删除原表中的重复数据
4.将临时表数据导入至原表。

回答(4):

因为不知道你A表的字段。这里假如A表有字段ID,Name,Age
如果 Name,Age重复,要去掉重复的

Delete T From
(Select Row_Number() Over(Partition By Name,Age ORDER BY ID ASC) As RowNumber From A) T
Where T.RowNumber > 1

有哪些字段重复就用这些字段分组。就是Partition 后面的字段。

回答(5):

设置一个除id之外唯一的字段,就可以有效避免这种问题