摘要:
问题:一个表有自增的ID列,表中有一些记录内容重复,也就是说这些记录除了ID不同之外,其他的信息都相同。需要把重复的记录保留一条,剩下的删除
方法一:还是2000年的时候一位Oracle DBA叫罗敏发给技术部全体的(可惜原始邮件找不到了,要不然我当文物发给大家):
delete from temp
where id not in (
select min(id)
from temp
group by column1,column2,...,columnn)
个人感觉这个方法思路比较清晰。不过效率相对来说不高。
方法二:赵贲在网络上搜出来的:
--删除相同城市下的相同行政区
delete a from area a where a.id>(select min(id) from area b where a.area_id=b.area_id and a.city_id=b.city_id)
方法三:使用sql 2005新增的row_number()功能和with关键字,我是从赵立东那里学来的。
print('删除Price 阅读全文
posted @ 2009-12-06 22:41 左其盛经管新书点评 阅读(656) 评论(2) 推荐(0)
浙公网安备 33010602011771号