oracle rownum使用与分页
2013-11-01 23:35
351 查看
rownum使用与分页
rownum说明:
rownum是个伪列,是随着结果集生成的,返回的第一行分配的是1,第二行是2等等,生成的结果是依次递加的,没有1就不会有2。
注意,不返回的就不算,第一条返回的结果的rownum为1。
rownum一旦生成,就不会变化了,所以要注意,指定排序时rownum就是打乱的了。
rownum的比较操作
我们说rownum不支持>,>=,=,betweenand,只支持<,<=等。
虽说不支持,但并不会报错,只是返回的数据为空,这是因为根本不能满足这样的where条件。
如whererownum>2:
取回第1条数据的rownum为1,不满足,就舍弃这条记录。
看下一条,然后取第2条数据的rownum还是为1,还是不满足,再舍弃。
以此类推,最终舍弃了所有的数据,这就是所谓不支持的原因。
于是我可以推出:
whererownum=1是只有一条结果的(要求至少有一条结果)。
SQL>select*fromempwhererownum=1;
EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO
-----------------------------------------------------------------------------------
7369SMITHCLERK790217-12月-8080020
SQL>
whererownum>=1是返回所有结果的(要求至少有一条结果)。
SQL>select*fromempwhererownum>=1;
EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO
-----------------------------------------------------------------------------------
7369SMITHCLERK790217-12月-8080020
7499ALLENSALESMAN769820-2月-81160030030
7521WARDSALESMAN769822-2月-81125050030
7566JONESMANAGER783902-4月-81297520
7654MARTINSALESMAN769828-9月-811250140030
7698BLAKEMANAGER783901-5月-81285030
7782CLARKMANAGER783909-6月-81245010
7788SCOTTANALYST756619-4月-87300020
7839KINGPRESIDENT17-11月-81500010
7844TURNERSALESMAN769808-9月-811500030
7876ADAMSCLERK778823-5月-87110020
7900JAMESCLERK769803-12月-8195030
7902FORDANALYST756603-12月-81300020
7934MILLERCLERK778223-1月-82130010
已选择14行。
whererownum<9是有8条结果的(要求至少有8条结果)。
rownum说明:
rownum是个伪列,是随着结果集生成的,返回的第一行分配的是1,第二行是2等等,生成的结果是依次递加的,没有1就不会有2。
注意,不返回的就不算,第一条返回的结果的rownum为1。
rownum一旦生成,就不会变化了,所以要注意,指定排序时rownum就是打乱的了。
rownum的比较操作
我们说rownum不支持>,>=,=,betweenand,只支持<,<=等。
虽说不支持,但并不会报错,只是返回的数据为空,这是因为根本不能满足这样的where条件。
如whererownum>2:
取回第1条数据的rownum为1,不满足,就舍弃这条记录。
看下一条,然后取第2条数据的rownum还是为1,还是不满足,再舍弃。
以此类推,最终舍弃了所有的数据,这就是所谓不支持的原因。
于是我可以推出:
whererownum=1是只有一条结果的(要求至少有一条结果)。
SQL>select*fromempwhererownum=1;
EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO
-----------------------------------------------------------------------------------
7369SMITHCLERK790217-12月-8080020
SQL>
whererownum>=1是返回所有结果的(要求至少有一条结果)。
SQL>select*fromempwhererownum>=1;
EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO
-----------------------------------------------------------------------------------
7369SMITHCLERK790217-12月-8080020
7499ALLENSALESMAN769820-2月-81160030030
7521WARDSALESMAN769822-2月-81125050030
7566JONESMANAGER783902-4月-81297520
7654MARTINSALESMAN769828-9月-811250140030
7698BLAKEMANAGER783901-5月-81285030
7782CLARKMANAGER783909-6月-81245010
7788SCOTTANALYST756619-4月-87300020
7839KINGPRESIDENT17-11月-81500010
7844TURNERSALESMAN769808-9月-811500030
7876ADAMSCLERK778823-5月-87110020
7900JAMESCLERK769803-12月-8195030
7902FORDANALYST756603-12月-81300020
7934MILLERCLERK778223-1月-82130010
已选择14行。
whererownum<9是有8条结果的(要求至少有8条结果)。
相关文章推荐
- oracle数据库使用Datagrid 数据列表的分页
- postgresql 使用limit分页
- 使用datatable进行服务端分页
- mybatis分页插件的使用
- sql分页存储过程!与asp.net分页控件一起使用
- android开发工作中经常使用的TabWidget标签分页
- Android中使用ListView实现分页刷新(线程休眠模拟)
- 如何使用 PagedList.Mvc 分页
- VS2008下使用Linq To Entity的Skip().Take()分页查询时遇到数据结果不对的问题
- AspnetPager分页控件的使用
- 使用Hibernate的setFirstResult,setMaxResults实现数据库分页
- php 使用array函数实现分页
- 【水晶报表实战指南】使用分组实现超多列分段同页及分页显示
- bootstrap分页插件--Bootstrap Paginator的使用备份
- ORCLE使用ROW_NUMBER()实现分页
- [转]使用java将word转成网页(无分页)
- 带有分页排序功能的表格插件的使用(通过ajax获取后台数据)
- AspNetPager分页控件的使用
- Mybatis分页插件-PageHelper的使用
- 如何正确使用page—taglib经行正确中文检索分页(同时查询条件任意)