rownum使用方法:
1.使用rownum子查询:
rownum是一个总是从1开始的伪列,当查询条件rownum>n(n>1)时,不能从数据库查到记录,因此要
通过子查询解决:select t.* from (select rownum r,users.* from users ) t where r>2;
结果:
SQL> select t.* from (select rownum r,users.* from users ) t where r>2;
R ID USERNAME PASSWORD AGE
---------- --------- -------------------- -------------------- ----------
3 3 sd3 dd3 23
4 4 dsd4 ddd4 23
5 5 adsd5 ddd5 43
先通过子查询(select rownum r,users.* from users)获取全部数据或通过rownum<n(n大于1),获取
前n条记录,然后从中查询满足条件的数据;
2.使用rownum排序:
例如:
SQL> select rownum r,users.* from users order by username;
R ID USERNAME PASSWORD AGE
---------- --------- -------------------- -------------------- ----------
5 5 adsd5 ddd5 43
4 4 dsd4 ddd4 23
2 2 qsd2 dd2 23
1 1 sd1 dd1 23
3 3 sd3 dd3 23
从中可以看出rownum并不是按照name列来生成序号的,因为系统是按照记录插入式的顺序给记录排的号,
为了解决这个问题,必须使用子查询:
SQL> select rownum r,t.* from (select * from users order by username)t ;
R ID USERNAME PASSWORD AGE
---------- --------- -------------------- -------------------- ----------
1 5 adsd5 ddd5 43
2 4 dsd4 ddd4 23
3 2 qsd2 dd2 23
4 1 sd1 dd1 23
5 3 sd3 dd3 23