将 oracle Rownum 与 between 关键字一起使用

Posted

技术标签:

【中文标题】将 oracle Rownum 与 between 关键字一起使用【英文标题】:Using oracle Rownum with between keyword 【发布时间】:2011-09-06 09:34:29 【问题描述】:

我计划将 JDBC 分页与 Oracle 一起使用(基于查询的技术)不缓存结果。 当我尝试在 Option 之间使用 rownum 时,它没有给我任何结果

select * from mytable where rownum 介于 10 和 20 之间;

但这给了我结果。

select * from mytable where rownum 请告诉我如何解决这个问题??

【问题讨论】:

【参考方案1】:

我刚刚回答了一个非常相似的问题,接近它的一种方法是这样做:

select *
from
( select rownum rnum, a.*
from (your_query) a
where rownum <= :M )
where rnum >= :N;

为rownum 提供一个小包装器。

但是,我认为这对于大批量实施并不明智。虽然我没有测试过。

【讨论】:

【参考方案2】:

请参阅 this question 了解为什么 BETWEEN 不能与 ROWNUM 和 Oracle & Pagination 一起使用,以及 this one 了解如何在 Oracle 查询中执行分页。

【讨论】:

【参考方案3】:

选择 *

来自(

   SELECT rownum   AS rowCount ,ID,UNIT_NAME
   FROM   MWT_COMPANY_UNIT  )  

WHERE rowCount BETWEEN requiredRowNumMinYouWant AND requiredRowNumMaxYouWant

【讨论】:

以上是关于将 oracle Rownum 与 between 关键字一起使用的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 中ROWNUM用法总结!

oracle 中rownum的用法简单总结

Oracle中rownum原理介绍

oracle分页详解(rownum与orderby)

oracle 查询时间段每一天日期。

oracle 之 伪列 rownum 和 rowid的用法与区别