Oracle的rownum字段是个比较奇怪的字段。拿一张有26条记录的Test表来举例。
select * from Test where rownum >=1;
select * from Test where rownum >=2;
select * from Test where rownum <=10;
第一条sql查出了26条记录,第二条sql一条记录也没查出。第三条sql查出10条记录。导致这个结果的原因是rownum是个虚拟的字段,它是在记录输出的时候是逐步产生的。
对于第一条sql,第一条记录的rownum是1,满足条件被输出,因此第二条纪录的rownum就变成2,满足条件被输出,依此类推,就把所有纪录都查出来了。
对于第二条sql,第一条记录的rownum是1,不满足条件没被输出,因此第二条记录的rownum还是1,没满足条件没被输出,依此类推,所有纪录都没能被查出来。
对于第三条sql,第一条记录的rownum是1,满足条件被输出,因此第二条记录的rownum就递增为2,满足条件被输出,直到第11条及之后的所有记录的rownum变成了11,不满足条件没被输出。
所以要查询Test表第n条到第m条的记录,我们应该这样写:
1.Oracle:
select * from
( select rownum r , * from Test ) A
where A.r <= m and A.r >= n;
2.MicroSoft SQL Server 2000:
Select * from
( select top 5 * from
( select top 10 * from Test ) order by id desc
)
3. Mysql:
Select * from Test limit 10 == Select * from Test limit 0,10;
Select * from Test limit 10,20;
相关推荐
jsp数据库分页查询及显示jsp数据库分页查询及显示jsp数据库分页查询及显示jsp数据库分页查询及显示
数据库分页查询语句
易语言源码MYSQL数据库分页查询.rar 易语言源码MYSQL数据库分页查询.rar 易语言源码MYSQL数据库分页查询.rar 易语言源码MYSQL数据库分页查询.rar 易语言源码MYSQL数据库分页查询.rar 易语言源码MYSQL数据库分页...
易语言MYSQL数据库分页查询源码,MYSQL数据库分页查询,载入表记录,显示指定范围记录,取总记录数2,显示记录
易语言MYSQL数据库分页查询.rar 易语言MYSQL数据库分页查询.rar 易语言MYSQL数据库分页查询.rar 易语言MYSQL数据库分页查询.rar 易语言MYSQL数据库分页查询.rar 易语言MYSQL数据库分页查询.rar
数据库分页查询示例1. 数据库分页查询示例2. 数据库分页查询示例3.
Qt数据库分页显示SQLITE,Qt4 Mingw 能正确编译运行
web网站数据库分页查询设计与实现
数据库分页查询整理
Qt编写的数据库分页demo,支持上一页下一页第一页末一页切换,实时显示当前页信息,支持千万级数据量。
Mysql、SqlServer、ORCALE 数据库分页查询
Android开发之数据库的分页查询
根据java语言对达梦DM数据库的连接和操作,包括建表、新增、修改、删除、查询以及复杂查询和分页查询等完整代码,附送Dm7Dictionary的驱动包,此驱动包兼容jdk1.7和jdk1.8本人亲测完美兼容
数据库分页数据库分页数据库分页数据库分页数据库分页
SQLServer数据库的分页查询,比较全面。
Oracle、MYSQL、sqlserver和DB2分页查询 分页查询
分页查询是Oracle数据库比较重要的一个知识点!希望这个对你有参照作用。