在SQL server 2005数据库中实现分页查询,语句是这样写吗?(在线等)

pen6688 2010-11-16 09:13:21
sql = " SELECT * "+
" FROM (SELECT Row_Number() OVER (ORDER BY empno) AS RowId, * "+
" FROM emp) U " +
" WHERE U.RowId BETWEEN ? AND ? ";

ps = conn.prepareStatement(sql);
ps.setInt(1,currentPage*lineSize);
ps.setInt(2,(currentPage-1)*lineSize);
//ps.setInt(2,currentPage*lineSize);
rs = ps.executeQuery();
...全文
134 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bingmeng_1102 2010-11-16
  • 打赏
  • 举报
回复
路过,学习ing
ousyuryu 2010-11-16
  • 打赏
  • 举报
回复
你刚才不是问过一次吗?没解决吗?

假设每页表示20条数据
因为RowId从1开始
第一页:RowId=1~RowId=20 (RowId BETWEEN 1 AND 20)
第二页:RowId=21~RowId=40 (RowId BETWEEN 21 AND 40)
......

currentPage是从几开始的啊?
如果是从0开始的话( 0,1,2,3,4。。。。。。。)
ps.setInt(1,currentPage*lineSize + 1 );
ps.setInt(2,(currentPage+1)*lineSize);
龙心 2010-11-16
  • 打赏
  • 举报
回复
嗯,应该没有问题,一个小建议,在拼写sql文的时候用stringbuffer比较好。
kardelpeng 2010-11-16
  • 打赏
  • 举报
回复
绝对可以~
youfeng445 2010-11-16
  • 打赏
  • 举报
回复


Select top 每页显示的行数 * From table

Where id not in(Select top (每页显示的行数 * (当前显示第几页-1)) id From table)

wymaweiyue 2010-11-16
  • 打赏
  • 举报
回复
差不多,就这样

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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