怎么倒序输出id行号

富坚老贼你更啊 2016-04-01 09:13:34

int pageSize=30; //一页显示多少条记录
int pageNow=1; //默认显示第一页
int rowCount=0; //该值从数据库查询 总条数
int pageCount=0; //一共多少页

"select top "+pageSize+" * from pc_taizhang where id not in(select top "+pageSize*(pageNow-1)+" id from pc_taizhang) ";
这个SQL语句是按id号顺序输出每一行,求教一下倒序输出该怎么写
...全文
370 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
道玄希言 2016-04-04
  • 打赏
  • 举报
回复
2012 或以上版本, 可以这么写

declare @pageSize int
declare @pageNow int
set  @pageSize = 10
set @pageNow = 2
select * 
from pc_taizhang
order by id desc offset @pageNow * @pageSize rows fetch next @pageSize rows only
RICHEER COCA 2016-04-04
  • 打赏
  • 举报
回复
引用 3 楼 roy_88 的回复:
倒序这样用 "select top "+pageSize+" * from pc_taizhang where id not in(select top "+pageSize*(pageNow-1)+" id from pc_taizhang ORDER BY id DESC) ORDER BY id DESC"; SELECT * FROM (SELECT * ,RN=ROW_NUMBER()OVER(ORDER BY ID DESC)FROM pc_taizhang) AS a WHERE RN BETWEEN "+pageSize*(pageNow-1)+1+" AND "+pageSize*pageNow+"
学习了,正解!!
中国风 2016-04-01
  • 打赏
  • 举报
回复
倒序这样用 "select top "+pageSize+" * from pc_taizhang where id not in(select top "+pageSize*(pageNow-1)+" id from pc_taizhang ORDER BY id DESC) ORDER BY id DESC"; SELECT * FROM (SELECT * ,RN=ROW_NUMBER()OVER(ORDER BY ID DESC)FROM pc_taizhang) AS a WHERE RN BETWEEN "+pageSize*(pageNow-1)+1+" AND "+pageSize*pageNow+"
中国风 2016-04-01
  • 打赏
  • 举报
回复
你那是SQL2000时的分页方法比较效,改成这样 SELECT * FROM (SELECT * ,RN=ROW_NUMBER()OVER(ORDER BY ID)FROM pc_taizhang) AS a WHERE RN BETWEEN "+pageSize*(pageNow-1)+1+" AND "+pageSize*pageNow+"
spiritofdragon 2016-04-01
  • 打赏
  • 举报
回复
子查询括号里最后要加order by id desc 外层 最后也要加 order by id desc

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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