以上说明先执行的rownum 再执行的排序.
解决方法:
SQL> select ename,sal,rownum from (select * from emp order by sal);//通过子查询实现
ENAME SAL ROWNUM
---------- --------- ----------
test 100.00 1
SMITH 800.00 2
JAMES 950.00 3
……..
SQL> select ename,sal,rowid from emp;
ENAME SAL ROWID
---------- --------- ------------------
SMITH 800.00 AAADVsAABAAAI1qAAA
ALLEN 1600.00 AAADVsAABAAAI1qAAB
…….
备注说明: 当使用rowid查询时,速度最快.
SQL> select empno,rowid from emp where empno =7369;
EMPNO ROWID
---------- ------------------
7369 AAAR3sAAEAAAACXAAA
select empno,rowid from emp where rowid='AAAR3sAAEAAAACXAAA';
EMPNO ROWID
---------- ------------------
7369 AAAR3sAAEAAAACXAAA