相关疑难解决方法(0)

如何在订购后限制Oracle查询返回的行数?

有没有办法让Oracle查询表现得像包含一个MySQL limit子句?

MySQL,我可以这样做:

select * 
from sometable
order by name
limit 20,10
Run Code Online (Sandbox Code Playgroud)

获得第21行到第30行(跳过前20行,给出下一行10).在行之后选择行order by,因此它实际上按字母顺序从第20个名称开始.

Oracle,人们提到的唯一的事情是rownum伪列,但它之前 进行了评估order by,这意味着:

select * 
from sometable
where rownum <= 10
order by name
Run Code Online (Sandbox Code Playgroud)

将返回按名称排序的十行的随机集合,这通常不是我想要的.它也不允许指定偏移量.

sql oracle pagination limit

966
推荐指数
10
解决办法
134万
查看次数

与Oracle进行分页

我不像我想的那样熟悉Oracle.我有大约250k的记录,我想每页显示100个.目前,我有一个存储过程,它使用数据适配器和数据集以及dataadapter.Fill(dataset)方法从存储过程的结果中检索数据集中的所有25万条记录.如果我将"页码"和"每页记录数"作为整数值,我可以作为参数传递,那么返回该特定部分的最佳方法是什么.比方说,如果我将10作为页码传递,120作为页数,则从select语句中将它给予我1880到1200,或类似的东西,我脑子里的数学可能会关闭.

我在.NET中用C#做这个,认为这不重要,如果我能在sql端正确,那我就应该很酷.

更新:我能够使用Brian的建议,而且效果很好.我想进行一些优化,但页面会在4到5秒而不是一分钟内出现,我的分页控件能够与我的新存储过程很好地集成.

sql oracle stored-procedures

89
推荐指数
5
解决办法
10万
查看次数

标签 统计

oracle ×2

sql ×2

limit ×1

pagination ×1

stored-procedures ×1