使用SQL语句分页的原理就是首先要知道每页要显示多少行数据,我们把这个值存在一个变量pageSize中,然后就是要确定要显示的是第几页,我们把这个值存在一个变量pageCount中。于是显示第pageCount页数据的SQL语句就是从排除了前(pageCount-1)*pageSize行的剩下的行中取前pageSize行。
相应的语句如下:
select top pageSize * from 表名
where 主键列名 not in
(select top (pageCount-1)*pageSize 主键列名 from 表名 order by 主键列名)
order by 主键列名
注意其中变量pageSize和pageCount的运用是用来阐明原理的,应该在应用程序中或存储过程中进行计算后生成相应的SQL语句,对数据库来说,top后面期望跟随一个常量值。
这样只要知道每页显示多少行数据和要显示第几页,就可以从数据库中取出相应的数据显示了。程序中其它语句与显示所有数据时相同。
因为当top关键字后面跟随0时,在Access中会报语法错误,所以当您使用Access数据库时,应该在程序进行判断,当pageCount为1即第一页时,使用下面的语句,第2页以后使用上面的语句:
select top pageSize * from 表名
order by 主键列名
没有评论:
发表评论