我正在尝试从 sql 语句创建记录的分页,我能够获得所有的下一条和上一条,但最后一条记录显示上一条记录为下一条,因为 sql 查询只返回 1 行而不是 2 行。我正在设置下一个基于第一个结果和先前作为第二个结果。
数据:
- 苹果
- 香蕉
- 葡萄
- 橙子
sql:
select *
from (select top 1 fruit
FROM table
where fruit > 'Banana'
order by fruit asc) as x
UNION ALL
select *
from (select top 1 fruit
FROM table
where fruit < 'Banana' order by fruit desc) as y
结果:
fruit
--------
Grape
Apple
这很好用!
对于第一条记录 - 我得到正确的结果,第一条记录是真实的。对于最后一条记录 - 我得到一个结果,它是获取上一条记录的第二个查询。但是我无法知道它的最后一条记录,所以它输出为 Next 而不是 Previous。
我如何确定这是最后一条记录,而返回的单行实际上是前一条?
或者
如何让查询为 Next 查询返回 NULL 行?所以我可以针对 NULL 结果进行测试?
奖励积分!
我怎样才能有一个查询可以给我第一条记录、最后一条记录以及下一条和上一条,这样我就可以启用循环分页了?如果在第一条记录上显示最后一条记录为上一条。如果在最后一条记录上显示下一条记录作为第一条记录?