datagrid连接access的快速分页法(3)——sql语句的选用(降序)
三、降序
(1)@pageindex <= @firstindex
select top @pagesize @queryfields
from @tablename
where @condition
order by @primarykey desc
(2)@firstindex < @pageindex <= @middleindex
select top @pagesize @queryfields
from @tablename
where @primarykey < (
select min(@primarykey) from (
select top @pagesize*@pageindex @primarykey
from @tablename
where @condition
order by @primarykey desc
) tablea
) where @condition
order by @primarykey desc
(3)@middleindex < @pageindex < @lastindex
select * from (
select top @pagesize @queryfields
from @tablename
where @primarykey > (
select max(@primarykey) from (
select top (@recordcount-@pagesize*(@pageindex+1)) @primarykey
from @tablename
where @condition
— order by @primarykey asc
) tablea
) where @condition
— order by @primarykey asc
) tableb
order by @primarykey desc
(4)@pageindex >= @lastindex
select * from (
select top (@recordcount-@pagesize*@lastindex) @queryfields
from @tablename
where @condition
order by @primarykey asc
) tablea
order by @primarykey desc
四、总结
通过上面的讨论,相信大家应该看到了该分页方法的优势所在。在下一篇中,我将给大家一个动态生成上面 sql 语句的类。
