@ rownum 分页查询
它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。
rownum < n (为大于1的自然数) 默认是成立的;
rownum > n (为大于1的自然数) 默认是不成立。
因此,查询rownum在区间[start,end]之间的数据,必须使用子查询(起别名)
分页查询 :
select * from ( select * ,rownum as rn ) where rn between start and end;
@ rownum 排序 :
rownum是在取数的时候产生的序号,并不是按排序字段在生成序列的
因此必须用子查询: 先查询出排序后用rownum标出正确的序号
select * ,rownum from ( select * from table order by column);