日期:2014-05-19  浏览次数:20388 次

请各位指教,主键是guid的表中怎么找给定guid的上一条记录和下一条记录?
RT,sqlserver数据库的一个表是用guid做主键的,现在需要找给定guid的上条记录和下一条记录。记录比较多,要效率好一点的,把所有记录找出来,再挨个判断的方法效率不好,请问大家还有什么好些的方法吗?请教了,谢谢!

------解决方案--------------------
declare @i int
select id=identity(int,1,1),* into # from [Table]
select @i=id from # where [guid]= '值 '
--上一条
select * from # where id=@i-1
--下一条
select * from # where id=@i+1

drop table #
------解决方案--------------------
er...你的字段里有时间字段(带年月日时分秒的)吗?
如果有你可以先找到给定记录的创建时间,然后所有时间小于当前记录时间(逆序)的top 1记录就是前一条,时间大与当前记录的创建时间(顺序)的top 1就是下一条
所以如果你有时间字段,那么就好办了.也不用改变表结构.