在Oracle,通常查询喜欢这个寻呼。

SELECT * FROM (SELECT *, rownum rid  FROM TABLEA WHERE rownum <= #pageend#)
WHERE rid > #pagestart#

然而,没有"rownum"功能在Sybase DBMS。

我怎么可以做的,询exactlly同在Sybase?

我找到一些方面。

  1. 使用"rowcount"

    设置rowcount10

    select*from表a

  2. 使用标识(使临时表)

    选择*,ROWNUM=身份(8)为#临时从表A

    SELECT*FROM#TEMP那里ROWNUM < #pageend#和ROWNUM>=#pagestart#

    DROP TABLE#TEMP

这些都不是我想要什么。

rowcount定在该届会议的级别和我不想让临时表格。

有帮助吗?

解决方案

如果你有一个独特的id列在你的表格你可以选择使用最多的n

SELECT TOP 10 *
FROM tableA
WHERE id BETWEEN @start AND @end

其他提示

这会给你所有 ids 所以你可以用它们在一个选择一样"select * where id_column in (ids from query below)"

select top 10 id_column from trade
where @whereClause
and id_column > 0  //keep replacing this with the max id from the result set
order by id_column
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top