在特定范围内限制sybase ASE的结果

时间:2016-03-25 13:20:08

标签: sybase sybase-ase

我有一个搜索屏幕,允许用户搜索信息并填充网格。一些搜索结果返回了大量数据。我正在尝试创建一个分页网格,这样我一次只能从商店程序中获得10或20个结果。 (我在UI中已经有了一个分页网格)

我正在尝试做这样的事情:

select * from wl_eval limit 1, 20

上面的查询将只返回前20条记录。我如何在Sybase ASE中实现这一目标?不幸的是,对于我的客户端项目,我们使用Sybase。我知道在其他数据库引擎中我们可以使用上面提到的查询。我也知道我们可以使用SET ROW COUNT 20但是如果我想要一个特定的范围,例如从30到50,这不会起作用。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

添加要返回的TOP numberofrecords

DECLARE @intStartRow int;
DECLARE @intEndRow int;

SET @intStartRow = (@intPage -1) * @intPageSize + 1;
SET @intEndRow = @intPage * @intPageSize;    

 WITH wl_eval AS
(SELECT field, 
 ROW_NUMBER() OVER(ORDER BY intID DESC) as intRow, 
 COUNT(intID) OVER() AS intTotalHits 
     FROM tblBlog)
 SELECT field, intTotalHits FROM wl
 WHERE intRow BETWEEN @intStartRow AND @intEndRow

答案 1 :(得分:0)

SELECT TOP 20 <column list> 
FROM YourTable 
ORDER BY <list>