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

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
posted @ 2016-07-22 09:06  浅言  阅读(1368)  评论(0)    收藏  举报