我有一个搜索屏幕,允许用户搜索信息并填充网格。一些搜索结果返回了大量数据。我正在尝试创建一个分页网格,这样我一次只能从商店程序中获得10或20个结果。 (我在UI中已经有了一个分页网格)
我正在尝试做这样的事情:
select * from wl_eval limit 1, 20
上面的查询将只返回前20条记录。我如何在Sybase ASE中实现这一目标?不幸的是,对于我的客户端项目,我们使用Sybase。我知道在其他数据库引擎中我们可以使用上面提到的查询。我也知道我们可以使用SET ROW COUNT 20
但是如果我想要一个特定的范围,例如从30到50,这不会起作用。
有什么想法吗?
答案 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>