SQL Server 2000 中第一次出现前 2 条记录,依此类推

Top 2 records for the first time and so on in SQL Server 2000

我有一个 table 叫 Test:

ID  |   Name    
------------
1   |   ABC  
2   |   XYZ  
3   |   LMN  
4   |   JHF 

我想要 select 前 2 行,我可以轻松做到

select top(2) * from test.

但我想要实现的是,当我再次 运行 相同的查询时,它会显示接下来的 2 条记录。

每次我 运行 相同的查询时,它都会给我接下来的 2 个结果。

我正在使用 SQL Server 2000,所以我不能使用 row_number()offset 以及 fetch

那么我们可以在 SQL Server 2000 中使用它吗?

您可能需要使用子查询模拟 Row_Number(),如下所示:

Select (Select count(*) from #Names n
        where n.[name] <= oq.[name] ) as RowN, Id, [Name]
    from #names oq

并在客户每次传递时传递适当的两个数字

通过上面的查询,您可以 generate/simulate Row_Number 基于名称如下:

+------+----+------+
| RowN | Id | Name |
+------+----+------+
|    1 |  1 | ABC  |
|    2 |  4 | JHF  |
|    3 |  3 | LMN  |
|    4 |  2 | XYZ  |
+------+----+------+

在每个客户端传递从客户端发送开始编号和结束编号,并在 RowN 中的 where 条件中应用。

Demo