ROWNUM伪列 的概念:
rownum表示的是一个数据行编号的伪列,它的内容是在用户查询数据时,为用户动态分配的一个数组(行号)。
注意它是随机生成的,并不是和某一行数据绑定在一起的。
观察rownum:
SQL> select rownum,deptno,dname,loc from dept; ROWNUM DEPTNO DNAME LOC ---------- ---------- -------------- ------------- 1 10 ACCOUNTING NEW YORK 2 20 RESEARCH DALLAS 3 30 SALES CHICAGO 4 40 OPERATIONS BOSTON
ROWNUM的常用操作:
--显示出查询出来的第1条记录
SQL> select *from dept where rownum=1; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK
注意只能是第一条记录,其它的是不行的。
--分页技术
1.查询出雇员表中的前5条记录
select * from (select empno, ename, hiredate, rownum rn from emp where rownum <= 5) temp where temp.rn > 0;
这里采用了子查询,其实直接写“select empno, ename, hiredate, rownum rn from emp where rownum <= 5”就可以得到同样的结果,这是因为这是采用标准的分页格式完成的。
结果:
2.查询出6~10条记录
从这就可以看出标准写发的好处了。
ORACLE12的新特性
为了方便数据分页显示操作,专门提供了FETCH语句。