2
USER_DTLS table
-----------------
ID  NAME    ADDRESS ROLL

1   SARAH   (Clob)  14
2   ALICE   (Clob)  13
3   ANU (Clob)  12

在这张桌子上

SELECT * FROM test.USER_DTLS
 WHERE ROWNUM =1; 

返回结果

1   SARAH   (Clob)  14

但在尝试的同时

SELECT * FROM test.USER_DTLS
 WHERE ROWNUM =2;

它没有返回任何结果,任何人都可以帮助这个

4

1 回答 1

6

Oracle 的 ROWNUM 从 1 开始,仅在分配给通过条件的行时才递增WHERE

由于您在 ROWNUM=2 上进行过滤,因此 ROWNUM=1 不会通过 WHERE 条件,因此 ROWNUM 永远不会分配给一行并递增到 2。

This ask Tom article对此进行了详细介绍,如果您想有效地使用ROWNUM,这是非常好的阅读材料。

于 2014-06-07T06:56:01.070 回答