SELECT TOP 页大小 *FROM TestTableWHERE (ID NOT IN (SELECT TOP 页大小*(页数-1) id FROM 表 ORDER BY id))ORDER BY ID--2.利用ID大于多少和SELECT TOP分页语句形式: SELECT TOP 10 *FROM TestTableWHERE (ID > (SELECT MAX(id) FROM (SELECT TOP 20 id FROM TestTable ORDER BY id) AS T))ORDER BY ID
SELECT TOP 页大小 *FROM TestTableWHERE (ID > (SELECT MAX(id) FROM (SELECT TOP 页大小*(页数-1) id FROM 表 ORDER BY id) AS T))ORDER BY ID--3.比較當前頁主鍵大小使用:不能指定分頁.只適用於 首頁,上一頁,下一頁,末頁.首页:select top 页大小 * from 表名 order by 主键下一頁:select top 页大小 * from 表名 where 主键 > 上一页末记录的主键 order by 主键上一頁:select top 页大小 * from 表名 where 主键 > 上一页首记录的主键 order by 主键 desc末頁:select top 页大小 * from 表名 order by 主键 desc
2.無標識列時的方案,同時也適用於有標識列時的情況.--1.利用SQL的游标存储过程分页create procedure SqlPager@sqlstr nvarchar(4000), --查询字符串@currentpage int, --第N页@pagesize int --每页行数asset nocount ondeclare @P1 int, --P1是游标的id@rowcount intexec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1, @rowcount=@rowcount outputselect ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页 set @currentpage=(@currentpage-1)*@pagesize+1exec sp_cursorfetch @P1,16,@currentpage,@pagesize exec sp_cursorclose @P1set nocount off
--2.用临时表.select top 10 * into #tmp from categoriesselect * from #tmp
3.SQL2005中的新的排序方法SELECT * FROM(SELECT *,ROW_NUMBER() OVER (ORDER BY ItemID) AS RowNo FROM Portal_Discussion ) AS AWHERE RowNo>=1 and RowNo<=10
转载于:https://www.cnblogs.com/feima-lxl/archive/2010/08/11/1797357.html
相关资源:数据结构—成绩单生成器