Oracle查询排序后的前10条记录 | 您所在的位置:网站首页 › oracle显示一条数据 › Oracle查询排序后的前10条记录 |
查询表CMS_GPS中,车牌号为“苏EFN588”,时间最近的前10条记录, 不可以写成下面这样,这样写是先搜索出前10条记录,然后再按时间倒序排列, SELECT * FROM CMS_GPS WHERE VEHICLE_NO = '苏EFN588' AND ROWNUM select rownum ,id,name from (select * from student order by name); ROWNUM ID NAME ---------- ------ --------------------------------------------------- 1 200003 李三 2 200002 王二 3 200001 张一 4 200004 赵四
第一种效率低,提供效率更高的第二种方法, 第二种方法: 先查字表,按时间排序,主表查字表时,自动生成伪列,并查询伪列ROWNUM4; 错误示范: ORACLE查询第N~M条记录的方法: select * from (select a.*,a.rownum rn from (select * from table_name) a where a.rownumn --这句就是从n到m也的数据,分为三层结构第一个错误:rownum前面不可以加表名做前缀,第二,三层结构太繁琐,可以优化为二层结构, select * from (select a.*,rownum rn from table_name a where rownumn;MYSQL查询前10条、第2~10条记录的方法: select * from table_name limit 0,10 --通常0是可以省略的,直接写成 limit 10。0代表从第0条记录后面开始,也就是从第一条开始 select * from table_name limit 1,10 --则为从第一条后面的记录开始展示,也就是说从第二条开始。MSSQL查询前10条的方法为: select top X * from table_name --查询前X条记录,可以改成需要的数字。 select top n * from (select top m * from table_name order by column_name ) a order by column_name desc --查询第N到M条记录。常用的分页也是这种方式。 例如常用的分页方式: declare @page int declare @row int set @page=2 --页数 set @row=3 --每页展示行数 select top (@row) * from (select top (@row*@page) * from table_name order by id ) a order by id desc --最基本的分页方式,改变@row和@page达到分页效果
|
CopyRight 2018-2019 实验室设备网 版权所有 |