数据库
首页 > 数据库> > oracle不支持mysql的limit功能

oracle不支持mysql的limit功能

作者:互联网

1、MYSQL使用limit返回指定的行数

select * from table limit m,n;
--从m+1行开始返回,返回n行
select * from table n;
--相当于select * from table 0,n;
select * from table m,-1;
--从m+1行开始返回,返回至最后一行

 

a、从http://www.xuesql.cn/得到测试数据

 

 

b、select * from table limit m,n;

SELECT * FROM movies limit 5,5;

 

c、select * from table n;

SELECT * FROM movies limit 5;

 

 

d、select * from table m,-1;

SELECT * FROM movies limit 5,-1;

 

 2、oracle使用rownum来返回指定的行数

(rownum不是用户自定义的字段,是系统定义的伪列)

a、表accu的测试数据

 

b、rownum是从1开始的

select * from accu where rownum<5;

 

 c、rownum不支持一下的查询

select * from accu where rownum>5;
--这样查询不会出错,但是得不到数据
select * from accu where rownum=m;
--如果m=1,则返回第一行;如果m≠1,返回空

 

 d、查询第2行到第5行数据

select * from (select day_code,buss_month,fnum,rownum as num from accu) where num between 2 and 5 order by day_code;
--rownum是一个伪列,将其变成物理列再选择出来
--这是子查询方式

 

select * from accu where rownum<=5 minus select * from accu where rownum<2
--运用集合减运算,出现在第一个select中而不出现第二个select中

 

详细知识讲解参考https://blog.csdn.net/mitedu/article/details/3584399

 

标签:--,accu,limit,mysql,oracle,table,rownum,select
来源: https://www.cnblogs.com/muhai/p/15491126.html