我有这样的表格
ID Name Sequence
--------------------------
45 Alex 1
22 John 2
2 Philip 3
65 Shine 4
356 Stephy 5
35 Tom 6
还行。。在这里,当我传递 ID 2 时,我应该得到Shine
行,因为这是基于 Philip (2) 之后的序列的下一行
哪个是最好的解决方案?
这能做到你想要的吗?
select top 1 t.*
from table t
where sequence > @id
order by sequence;
select top 1
t.*
from
myTable t
where
sequence > @param
order by sequence
我找到了自己问题的答案。它可能对我这样的初学者有所帮助,但仅在SQL 2012中可用
从中选择 *(选择 ID,姓名, LAG(ID,1) 超过(按顺序排序) 上一页ID,LEAD(ID,1) 结束(按序列排序) 下一个ID,序列 FROM tbl) 作为我的表,其中 previd=3
这将返回
ID Name Sequence
--------------------------
65 Shine 4