怎么做这个选择?

时间:2014-09-22 16:07:50

标签: sql sql-server oracle

我必须在oracle 9和sql server 9下执行此操作

我在桌子上面有图像,它可能很重。 我想选择十个第一行然后选择十个等等......直到表的末尾。 如果可能的话,出于维护原因,我希望为oracle和sql server做同样的请求。我看到了rownum和stuff之类的东西,但我不明白它是如何工作的,以及它是否适合我所拥有的。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您可以在Oracle和SQL Server中执行以下操作:

with cte as (
      select t.*, row_number() over (order by id) as seqnum
      from table t
     )
select cte.*
from cte
where seqnum between X and Y;

您需要为每次通话插入X和Y的值。

这假设SQL Server 9确实意味着SQL Server 2005+。我不认识SQL Server 9是有效版本(有关版本列表,请参阅here)。