sql server重复数据处理
首先从上千条记录中找出是重复的记录,sql语句:
select
keyColumn
from
testTable
group by keyColumn
having count(*)>1
其中 keyColumn 就是关键列,以此来区分,其他数据。
其次,找出要删除的一列,怎么找,当然要根据能区分两条重复记录的标识了,别告诉我没有,那就建立一个自增id吧,下面也已自增id来区分数据的:
select
max(id)
from
testTable
where
keyColumn
in
(
select
keyColumn
from
testTable
group by keyColumn
having count(*)>1
)
group by keyColumn,id
上面是要删除两条记录中最大id的记录,min函数就是删除最小的。
最后就是真正的要删除了,sql语句:
delete from keyColumn
where
id in
(
select
max(id)
from
testTable
where
id in
(
select
keyColumn
from
testTable
group by keyColumn
having count(*)>1
)
group by keyColumn,id
)
ok,大功告成,有两条重复的记录就是这样被消灭掉了。