代码改变世界

Sql2005高效分页语句

  假面Wilson  阅读(322)  评论(0编辑  收藏  举报

 1、

select top 10 * from
  ( select top (@Page * 10) ROW_NUMBER() OVER (order by id) as RowNum, id, username    
    from Guest  where username = 'user'
  ) as T
where RowNum > ((@Page - 1) * 10)

 

2、

select  * from

( select ROW_NUMBER() OVER(order by id) as RowNum,id,username 

  from Guest  where username = 'user'

) as T

where RowNum between 31 and 60

 

3、

with T as

(select ROW_NUMBER() OVER(order by id) as RowNum,,id,username 

 from Guest  where username = 'user'

)

select * from T

where RowNum between 31 and 60

 

4

SELECT  TOP 页大小 FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDERBY id ) ORDER BY id 

 

SELECT TOP 页大小 *FROM table1 WHERE id > ( SELECT ISNULL(MAX(id),0) FROM ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDERBY id ) A ) ORDER BY id 

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示