15
SQL SERVER 找「上一筆」、「下一筆」的值
寫程式的時候,可能會需要連續編輯或閱覽資料,會用到【上一筆】、【下一筆】的動作,
如果TABLE有連續編號的欄位,當然用該欄位判斷即可,
但通常都會下ORDER BY排序,那就不能用原本的編號啦~
故~需要在選定編輯該筆資料時,也得知到上下一筆的KEY值,
找了很多方法,下列只要個下一個SELECT即可得到上下一筆的KEY。
【上一筆】
SELECT RowNo , id , no , name
FROM ( select top 100 percent ROW_NUMBER() OVER(order by BBB desc ) as RowNo , *
FROM TableA
) as TableB
WHERE RowNum =
( SELECT RowNo
FROM
( select top 100 percent ROW_NUMBER() OVER(order by BBB desc ) as RowNo , *
FROM TableA
) as TableB
WHERE id =’123′
) – 1
【下一筆】
SELECT RowNo , id , no , name
FROM (
select top 100 percent ROW_NUMBER() OVER(order by BBB desc ) as RowNo , *
FROM TableA
order by BBB desc
) as TableA
WHERE RowNo =
( SELECT RowNo
FROM
( select top 100 percent ROW_NUMBER() OVER(order by BBB desc ) as RowNo , *
FROM TableA
order by BBB desc
) as TableA
WHERE id =’123′
) + 1
There are no comments.