select name,sal from a left join b on a.numeber=b.number order by sal limit 3,1;
我想用这个查询sal排第四的人员。
但是总是报错sql command not properly ended
我在删除limit3,1后保留前面的,运行还是正常的,问题在哪里呢
Oracle数据库分页要用rownum伪列,limit是mysql数据库的分页语句。
oracle 不能使用 limit,正确的语法如下
--只获取前10行
select * from emp fetch first 10 row only;
--排序后获取前5行
select * from emp order by sal first fetch 5 row only;
--跳过前3行,获取后5行
select * from emp order by sal offset 3 rows fetch next 5 rows only;
--获取前百分之十的行
select * from emp fetch next 10 percent rows only;
以上语法是在oracle12c新增的,如果是更老的版本,建议结合row_number() over(order by )使用,常规的rownum容易出现分页数据重复或者遗漏的问题
语法问题
oracle 没有limit 这个语法
是不是要写limit 3 offset 1