sqlserver 分页语句

mysql中数据库分页,用limt觉得很不错,可是到sqlserver中,只有top,而top不能带2个参数(起始页),所以只能自己写个语句了:

写成通用的SQL:

String pageSize = 10;//每页显示数

String onPage=1;//当前页数

String sql = "SELECT TOP  " + pageSize +"  *  FROM    tablename   WHERE 主键 NOT IN(SELECT TOP "+(onPage-1)*pageSize +"主键 FROM   tablename  ORDER BY 主键)ORDER BY 主键"

这里的orderby条件也可以是别的字段。

当然,在应用这个SQL之前,我们还是要先获取总的数据条数从而换算出总页数!

备注:记住一点,where和orderby的条件括号内和外的一定要一致,否则将查询出错误数据!

相关推荐