mysql与oracel实现类似于top的功能

mysql的top用法需要借助limit

limit在mysql中主要用于查询语句中,对查询结果进行分页处理,例如有10000条数据,想要拿到前100条数据,就要使用limit对结果前100条分页处理。

limit的格式

limit的参数有两个,分两种情况:

当只传一个参数时,参数代表的是数据量;当传两个字段时,第一个参数代表起始位置,第二个参数代表数据量。

select * from table_1 order by col limit 10
select * from table_1 order by col limit 5,10

上述按照字段col排序查询表table_1的数据,第一行代表查询表table_1排名前10的数据;第二行代表查询表table_1中排名除前五之外(不包括第五)的10条数据,即排名在6-15名的数据。故limit n)等价于(limit 0,n)

oracel的top用法需要创建虚列

rownum 是作为一个虚列存在于查询语句中,代表的是行号。

select col1,col2 from (select col1,clol2,rownum rn from table1 where rownum<100) where rn<20 

oracel 不能直接进行分页查询或者直接排序的数据,必须先增虚列排序,再进行类似的分页查询。
所以若是需要进行特定排序,需要借助row_number()over ...order by .. 等排序函数增加虚列以达到分页查询的目的。

原文地址:https://www.cnblogs.com/Zhao01/p/14931965.html