在oracle 的scott用户表下查询全表 使用rownum 代码如下: select rownum ,empno ,ename,job,mgr,hiredate from emp where rownum >2为什么一条都数据都没有啊
答:你这样肯定有问题, rownum是对结果集的编序排列,始终是从1开始,所以你的rownum>2永远为假,所以就没记录返回。。。 rownum只能用于<,如果要用>要么用rownumber()OVER,要么就实例化 用ROW_NUMBER() OVER()解决 SELECT empno, ename, job, mgr, hiredate FROM (SELECT empno, ename, job, mgr, hiredate, ROW_NUMBER() OVER(ORDER BY empno) rk FROM emp) t WHERE rk > 2 或者实例化就可以了 SELECT empno, ename, job, mgr, hiredate FROM (SELECT empno, ename, job, mgr, hiredate, rownum rk FROM emp) t WHERE rk > 2