一、条件字段为数值的情况
select
*
from
tb
where
id=@id;
--当前记录
select
top
1 *
from
tb
where
id>@id
order
by
id;
--下一条记录
select
top
1 *
from
tb
where
id<@id
order
by
id
desc
--上一条记录
二、以排序的思路出发的一种方案
;
WITH
TUsers
AS
(
SELECT
*, ROW_NUMBER() OVER (
ORDER
BY
vcUserID)
AS
_ROW
FROM
DB_Fast_Users.dbo.T_Users
AS
A(NOLOCK)
)
SELECT
*
into
#T
FROM
TUsers
-- 上一条
select
B.*
from
#T
AS
A(NOLOCK)
left
join
#T
AS
B(NOLOCK)
ON
B._ROW = (A._ROW - 1)
where
A.vcUserID=
‘Test1‘
-- 下一条
select
B.*
from
#T
AS
A(NOLOCK)
left
join
#T
AS
B(NOLOCK)
ON
B._ROW = (A._ROW + 1)
where
A.vcUserID=
‘Test1‘
drop
table
#T