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;
没有结果 任何人都可以帮忙吗
答案 0 :(得分:4)
Oracle的ROWNUM从1开始,仅在分配给通过WHERE
条件的行时才会递增。
由于您在ROWNUM = 2上进行过滤,因此ROWNUM = 1不会传递WHERE条件,因此ROWNUM永远不会分配给一行并递增为2.
This ask Tom article详细介绍了这一点,如果你想有效地使用ROWNUM,这是非常好的阅读。