Oracle高效删除数据

Author Avatar
Serical 5月 17, 2016
  • 在其它设备中阅读本文章

方式一

DELETE FROM TABLENAME T 
WHERE T.ROWID NOT IN(
SELECT MAX(B.ROWID) FROM TABLENAME B 
GROUP BY B.COL1, B.COL2 ...
)

方式二

DELETE FROM TABLENAME T
WHERE T.ROWID <> (
SELECT MAX(B.ROWID) FROM TABLENAME B 
WHERE T.COL1 = B.COL1 
AND T.COL2 = B.COL2
)

方式二效率明显高于方式一