日期:2014-05-18  浏览次数:20743 次

SqlServer 查找指定条件的上一条或下一条数据
SqlServer 查找指定条件的上一条或下一条数据


请问怎么样查找出指定一个条件,这个条件可能是自增长的数字型字段,也可能是唯一值的字符串型字段。怎么样获得这个条件,这条数据的上一条或下一条数据呢?

应用的需求:如,邮件系统中,查找某一封邮件时,显示上一条邮件和下一条邮件。

------解决方案--------------------
ROW_NUMBER() 编个号,取n-1,n,n+1就可以了
------解决方案--------------------
SQL code
select * from tb where id=@id --当前记录
union all
select top 1 * from tb where id>@id order by id --下一条记录
union all
select top 1 * from tb where id<@id order by id desc --上一条记录

------解决方案--------------------
探讨

引用:

ROW_NUMBER() 编个号,取n-1,n,n+1就可以了



问题在于,如何知道当前条件结果本身的Row_Number()编号?