--上一條
select * from tb where id=(select max(id) from tb where id <2)
--下一條
select * from tb where id=(select min(id) from tb where id>2)
or
--上一条
select top 1 * from test where id<2 order by id desc
--下一条
select top 1 * from test where id>2 order id
*******************************一个例子
id int 自增长
name nvarchar(20)
paixu int
id name paixu
1 aa 1
2 bb 2
5 cc 3
6 dd 5
select * from test where id=2 查询出一条固定的语句
我想查出他的上一条,下一条
并实现paixu的数字的改变
例如:查出的id为2的排序为2,把id为2 的和5的排序号调换一下
--上一条
select top 1 * from test where id<2 order by id desc
--下一条
select top 1 * from test where id>2 order id
--调换排序号
declare @id int,@id1 int,@paixu
set @id=2
--查出下一条id号
if exists(select * from test where id>@id)
begin
set @id1=(select top 1 id from test where id>@id order by id) --交换排序号
select @paixu=paixu from test where id=@id
update test set paixu=(select paixu from test where id=@id1) where id=@id --将@id1的排序号更新到@id行
update test set paixu=@paixu where id=@id1 --更新@id1行的排序号
end