关于SQL分页语句的问题,请高手帮忙解决,先行谢过!

dbjian 2006-09-13 04:37:42
我写了一个分页语句:

page_record:每页记录数
curpage :当前页数

SELECT TOP page_record * FROM booktab WHERE (ID > (SELECT MAX(id) FROM (SELECT TOP page_record*(curpage-1) id FROM booktab ORDER BY id) AS T)) ORDER BY ID ;
但是当查询第一页记录时,即:

SELECT TOP 8 * FROM booktab WHERE (id > (SELECT MAX(id) FROM (SELECT TOP 0 id FROM booktab ORDER BY id) AS T)) ORDER BY id;

就查不出来数据,因为字查询中从一个空数据中取最大值时,结果为空,即:

SELECT MAX(id) FROM (SELECT TOP 0 id FROM booktab ORDER BY id) AS T;

因此导致最后查询结果为空。在此请教高手:这个SQL语句可以怎么改,或者说有什么更好的算法,实现分页功能;谢谢!
...全文
275 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshiyechao 2006-11-04
  • 打赏
  • 举报
回复
page_record:每页记录数
curpage :当前页数

SELECT TOP page_record * FROM booktab WHERE (ID > (SELECT MAX(id) FROM (SELECT TOP page_record*(curpage-1) id FROM booktab ORDER BY id) AS T)) ORDER BY ID ;
但是当查询第一页记录时,即:

SELECT TOP 8 * FROM booktab WHERE (id > (SELECT MAX(id) FROM (SELECT TOP 0 id FROM booktab ORDER BY id) AS T)) ORDER BY id;

就查不出来数据,因为字查询中从一个空数据中取最大值时,结果为空,即:

SELECT MAX(id) FROM (SELECT TOP 0 id FROM booktab ORDER BY id) AS T;
dbjian 2006-11-03
  • 打赏
  • 举报
回复
不能帮我优化一下SQL语句吗?
  • 打赏
  • 举报
回复
分页功能第一页需要做判断
if(curpage==1){
select top 10 * from tablename where ...
}
else
{

}

250

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧