我正在使用以下代码删除具有重复的person_ID的记录。我可能只是忽略了一些东西。
DELETE p1
FROM AR_Personnel p1
INNER JOIN AR_Personnel p2
WHERE p1.personnel_ID = p2.personnel_ID;
答案 0 :(得分:1)
您可以尝试这样的操作-非常快(假设第i1列是假的):
; with f1 as (select i1 , row_number() over (partition by i1 order by i1 ) rn from t21)
delete from f1 where rn > 1
这使用CTE,可能是当前最流行的删除公仔的模式。
答案 1 :(得分:0)
另一种选择是使用分组依据来收集所有公仔
select *
-- delete -- ALWAYS test first !!
from AR_Personnel
where AR_Personnel.PrimaryKeyField not in
( select min(p.PrimaryKeyField)
from AR_Personnel p
group by p.personnel_ID
)
但是使用CTE可能更快