在进行一些查询的时候,如果返回的结果集很大,那么用户可能会希望对这些结果进行分页显示。也就是说,可以指定每一页显示多少条记录,以及要显示哪一页的记录。
以示例数据库AdventureWorks的Person.Contact表为例,现在希望显示该表中的人名以及其称呼。如果执行以下语句:
那么会一次过返回19972行记录,面对这么大的结果集真是头疼……还好我们可以把结果进行分页。
要实现分页需要用到嵌套子查询,该子查询就是上面的SELECT语句,不过我们还要为其加上一列,该列用数字为每一行顺序标识编号。这里要使用ROW_NUMBER()函数:
有了顺序、唯一的编号,就可以在外部查询中进行分页,不过在这之前需要两个变量,表示每页显示多少行和页码。然后在在外部查询加一个WHERE子句和TOP子句。
完整的代码像这个样子:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16436858/viewspace-611144/ ,如需转载,请注明出处,否则将追究法律责任。