Orcale的 rownum

rownum是orcale 系统顺序分配为从查询返回的行的编号,如第一行是1,第二行是2,是个伪字段,不能以任何表的名称作为前缀。通常用于限制查询返回的总行数

1、等于某值的查询条件
如果希望找到table中第一条学生信息,使用rownum=1
如果希望找到table中第二条学生信息,使用rownum=2查询不到,因为rownum总是从1开始,orcale任务rownum>n(n<1的自然数)条件不成立

2、大于某值的查询条件
select * from
(
     select rownum no,id,name from student
)
where no>2
想找从第二行记录以后的记录,不能直接使用rownum>2
rownum必须有别名,否则查询不到记录,因为rownum不是表的列,不起别名的话无法知道rownum是子查询的列还是主查询的列

3、小于某值的查询
想找第三条记录以前 的记录,可以使用rownum<n(n为大于1的自然数)

4、查询rownum在某区间的数据
select * from 
(
    select  rownum no,id,name from student where rownum<=3
)
where no>=2
效率较低

5、rownum 和排序(按 name剖析,用rownum标出正确序号)
select rownum,id,name from
(
   select * from student order by name
)

原文地址:https://www.cnblogs.com/lujiangping/p/10630041.html