Oracle中的ROWNUM是一个伪列,用于表示查询结果中行的编号。它可以在多种场景下使用,以下是一些常见的例子:
SELECT * FROM emp WHERE ROWNUM <= 5 ORDER BY sal DESC; SELECT * FROM (SELECT e.*, ROWNUM rn FROM emp e WHERE ROWNUM <= 10) WHERE rn >= 6; DELETE FROM emp WHERE ROWID IN ( SELECT ROWID FROM ( SELECT ROWID, ROW_NUMBER() OVER (PARTITION BY ename ORDER BY ROWID) rn FROM emp ) WHERE rn > 1 ); SELECT ROWNUM, empno, ename, sal FROM emp ORDER BY sal DESC; 需要注意的是,ROWNUM在WHERE子句中使用时,会在查询过程中动态计算,这可能导致预期之外的结果。因此,在使用ROWNUM进行分页查询等操作时,建议将其与子查询结合使用,以确保正确的结果。