1、首先统计得到符合条件的记录数
2、定义表变量:表变量的第一个字段为自增长类型,第二个字段为记录集中的唯一值字段(一般是主键)
3、使用insert () select 语句将符合条件的记录的唯一值字段保存在表变量中。
4、使用where ID in (select ID From 表变量 WHERE ……) 的方法从表两边中读出需要的唯一值字段。
方案二:
1、首先统计符合条件的记录数,并根据页大小计算页数
2、如果读取第一页,直接使用TOP子句读取
3、如果页数在前一半:
结果集1:SELECT TOP CurPage*PageSize Fields FROM Table ORDER BY ID ASC
结果集2:SELECT TOP PageSize * FROM (结果集1) ORDER BY ID DESC
最终结果:SELECT * FROM (结果集2) ORDER BY ID ASC
4、如果页数在后一半:
结果集1:SELECT TOP (PageCount-CurPage)*PageSize Fields FROM Table ORDER BY ID DESC
最终结果:SELECT TOP PageSize * FROM Table ORDER BY ID ASC