我怎么可以做的寻呼中Sybase而不会使温度表吗?(oracle rownum问题)
题
在Oracle,通常查询喜欢这个寻呼。
SELECT * FROM (SELECT *, rownum rid FROM TABLEA WHERE rownum <= #pageend#)
WHERE rid > #pagestart#
然而,没有"rownum"功能在Sybase DBMS。
我怎么可以做的,询exactlly同在Sybase?
我找到一些方面。
使用"rowcount"
设置rowcount10
select*from表a
使用标识(使临时表)
选择*,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
不隶属于 StackOverflow