在Oracle查询中的限制和偏移量

12 浏览
0 Comments

在Oracle查询中的限制和偏移量

我需要oracle中以下查询的解决方案:

select * from option_list order by option_id LIMIT 4 OFFSET 1

在执行时遇到以下错误:

odbc_exec(): SQL error: [Oracle][ODBC][Ora]ORA-00933: SQL command not properly ended

请帮助我解决在oracle中使用php执行查询时的offset和limit问题

注意:在postgres中查询正常工作,但在oracle中有问题。

0
0 Comments

在Oracle查询中,出现了Limit和Offset的问题。这个问题可能是由于需要在查询结果中限制返回的行数以及跳过一些行的需求而引起的。为了解决这个问题,可以使用以下方法来构建查询结构:

select * 
  from ( select /*+ FIRST_ROWS(n) */ 
  a.*, ROWNUM rnum 
      from ( your_query_goes_here, 
      with order by ) a 
      where ROWNUM <= 
      :MAX_ROW_TO_FETCH ) 
where rnum  >= :MIN_ROW_TO_FETCH;

这个方法使用了子查询和ROWNUM来实现限制和偏移。在子查询中,首先对原始查询结果进行排序。然后使用ROWNUM来给每一行分配一个行号。接下来,在外部查询中,通过设置上限和下限来限制返回的行数。通过这样的查询结构,可以达到类似于LIMIT和OFFSET的效果。

如果需要获取更多详细信息,可以访问这里

0