sql> delete from emp where rowid not in (select max(rowid) from emp group by empno);
任何人都可以解释max(rowid)做什么?请解释这个sql程序
答案 0 :(得分:1)
rowid
是一个可用于Oracle表中所有行的伪列。它实际上是行的地址,用于标识数据页面上的数据页和偏移量。
与(几乎)任何其他数据类型一样,您可以获取最大值。所以,这样做是为每个rowid
计算empno
的最大值。 delete
然后删除不最大值之一的所有行。
这样可以为每个empno
保留一行。
rowid
本身非常好documented。