MSSQL2008表里列的数据重复批量更改?
发布网友
发布时间:2022-04-08 10:48
我来回答
共2个回答
懂视网
时间:2022-04-08 15:09
select * from Persons where Id in
(
SELECT MAX(Id) AS Expr1
FROM Persons
GROUP BY Name, Gender
)
2.删除重复的数据【MAX换成MIN会有不同的效果】
delete from Persons
where Id not in
(
SELECT MAX(Id) AS Expr1
FROM Persons
GROUP BY Name, Gender
)
MSSQL取得或删除重复数据
标签:
热心网友
时间:2022-04-08 12:17
一个命令搞不定的。
先按ordersid分组查询,利用having count(*) >1 筛选出所有具有重复ordersid取值重复的数据。
create table tmp_ordersid
as select ordersid,count(*)as num from Duy
group by ordersid
having count(*)>1;
然后将这些数据的ordersid值全部更新成全表最大的ordersid值向上递增,避免ordersid与表内其它值冲突。
然后需要写一个存储过程或一个事物。对原表涉重的ordersid进行循环update ,取值按原数据的最大值向上递增即可。
特别注意,该表需要保证是静态的,没有新数据进入,否则可能带来新的重复值数据。