0
sql> delete from emp where rowid not in (select max(rowid) from emp group by empno);
任何人都可以解釋什麼最大(rowid)嗎?請解釋這個sql程序刪除表格中的重複行
sql> delete from emp where rowid not in (select max(rowid) from emp group by empno);
任何人都可以解釋什麼最大(rowid)嗎?請解釋這個sql程序刪除表格中的重複行
rowid
是一個可用於Oracle表中所有行的僞列。它確實是該行的地址,用於標識數據頁面上的數據頁面和偏移量。
與(幾乎)任何其他數據類型一樣,您可以取最大值。所以,這是做什麼計算最大rowid
爲每個empno
。 delete
然後刪除所有行是而不是的最大值之一。
這對每個empno
都有保持單行的效果。
rowid
本身相當好documented。
您可能希望對所有列執行「group by」操作,「count(1)」並在其上添加「having count(1)> 1」,以便檢測重複項。之後,你可以發表聲明來刪除從其中退回的偶數或奇數的rownums。 –