Asp.net 返回当前行的下一行/上一行的sql语句

Asp.net 返回当前行的下一行/上一行的sql语句,asp.net,sql-server,sql-server-2008,select,Asp.net,Sql Server,Sql Server 2008,Select,我相信这在mysql中是可能的,但是SQLServer2008呢?例如: **ID Type** 11111 dgf-324-fhj 11111 sdg-654-fhd 22222 djg-234-dfh 23333 uoi-738-sdf 如果type是PK,假设我的查询返回第一行11111,那么我如何创建一个SQL语句来解析我到下一行或上一行?任何对正确方向的帮助或

我相信这在mysql中是可能的,但是SQLServer2008呢?例如:

   **ID             Type**
   11111          dgf-324-fhj
   11111          sdg-654-fhd
   22222          djg-234-dfh
   23333          uoi-738-sdf

如果type是PK,假设我的查询返回第一行11111,那么我如何创建一个SQL语句来解析我到下一行或上一行?任何对正确方向的帮助或指点都会很棒。该程序是asp.net/c#/visual studio 2010,谢谢

看看这个关于分页的答案:


如果您希望一次只执行一行,那么只需将RowNum过滤器更改为一次1。

请记住,表表示无序行的集合。因此,“下一个”和“上一个”的概念没有任何意义,除非你命令命令。在您的示例中,除非您指定了顺序,否则不能保证给定的Select语句在
sdg-654-fhd
之前返回say
dgf-324-fhj
。但是,假设按类型排序,我们可以使用如下排序函数:

With OrderedItems As
    (
    Select Id, Type, Row_Number() Over ( Order By Type ) As Num
    From SourceData
    )
Select Id, Type
From OrderedItems
Where Num = 2
范例

我还要提到,这种做法存在一些问题。如果有人在您查询第1行后插入一个新行,该新行将成为“新”第2行,您将得到与预期不同的结果