SQL Server 2000中第一次排名前2的记录,依此类推

时间:2017-07-15 10:59:29

标签: sql sql-server sql-server-2000

我有一个名为Test的表格:

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

我想选择前2行我可以轻松完成

select top(2) * from test.

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

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

我正在使用SQL Server 2000,因此我无法使用row_number()offset以及fetch

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

1 个答案:

答案 0 :(得分:1)

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

want = lookup[raw]

并在客户

的每一次传递中传递适当的两个数字

使用以上查询,您可以根据名称生成/模拟Row_Number,如下所示:

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

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

Demo