MySQL Oracle中的“limit”功能

SQL中的limit

limit 作用是限制SQL语句的返回结果数量,常用语分页查询

limit 语法格式:

select * from tableName limit i,n
i:查询结果的开始的索引值(缺省为0)。i=0可省去 i.
n:为查询结果返回的数量

mysql的索引从0开始。

例子:

select * from liuyan limit 0,5;

获得的数据索引为:0,1,2,3,4

MySQL Oracle中的“limit”功能_第1张图片

select * from liuyan limit 5,5;

数据的索引为:5,6,7,8,9

MySQL Oracle中的“limit”功能_第2张图片

Oracle中类似limit语句

Oracle中没有limit关键字,通过rownum来约束查询结果数量。

  -- 查询前9条数据
  select b.id, b.remark,rownum as num 
  from BUSI_PARAM b
  where 1=1 and remark='物料组责任人' and rownum <10

MySQL Oracle中的“limit”功能_第3张图片

对于查询 第几条至第几条数据 Oracle没有 MySQL的limit那么方便

还是能通过rownum曲线实现

select c.* from (
  select b.id, b.remark,rownum as num 
  from BUSI_PARAM b
  where 1=1 and remark='物料组责任人' 
  ) c  
where C.num between 4 and 12;  

MySQL Oracle中的“limit”功能_第4张图片

注意:rownum不支持一下查询

select * from BUSI_PARAM
where remark='物料组责任人' and rownum>2;

因为rownum是先得到查询的结果集在对记录进行编号,所以当oracle查询得到第1条记录时,发现rownum为1不满足条件,然后就继续查询第2条记录,但此时第2条记录又被编号为1(也即rownum变为1),所以查询得到的始终是rownum=1,因此无法满足约束,最终查询的结果集为空。所以当你查询rownum大于2的记录时会得到一个空的结果集。

你可能感兴趣的:(Oracle,oracle,mysql)