搜索
热搜: 活动 交友 discuz

Discuz! Board

 找回密码
 立即注册
查看: 85|回复: 0

如何实现SQL Skone娱乐平台官方下载erver 2005快速Web分页

[复制链接]

41

主题

41

帖子

141

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
141
发表于 2018-8-17 20:39:41 | 显示全部楼层 |阅读模式
  分页,就是按照某种规则显示分组数据集,但是在SQL Server 中,分页并不是十分容易就能够实现。在过去,开发人员通常需要自己编写程序,使用临时表格来实现分页功能,或者将所有的数据结果集返回到客户端,在客户端进行分页操作。从开发人员或者DBA的角度来看,两种方法都不能令人满意。
  随着SQL Server的发布,其中的一些排序函数使得开发人员编写数据分页程序变得更加简单和高效。这些新的排序函数提供了统计数据集的数目,对数据集归类,按照某种标准对数据集排序等功能。在这篇文章中,我将着重介绍新增加的ROW-NUMBER排序函数,它会根据你指定的分类标准将结果数据集进行分类,同时给数据集分配连续的页面。
  我总是喜欢通过例子来介绍如何使用新技术,所以让我们来看看如何设计一个存储程序,使用ROW_NUMBER这一新函数来实现数据的自动分页。
  首先,需要定义一些数据结构。我们定义一个SalesHistory表格,它包含的数据是我们在网上售出产品的销售记录。包括一些常见的销售信息,例如,所售产品、售出日期、产品售出价格等。下面的脚本就是创建这样的一个表格:
  运行列表A中的脚本则在上面创建的SalesHistory表中添加一些例子数据。
  现在数据表中已经具有实例数据。接下来我们看看如何调用程序来实现数据的分页显示。列表B包含这个程序的脚本内容。这个程序含有两个参数:
  如果你刚刚开始使用SQL Server,可能会不熟悉以“WITH”开头的声明语句。这条语句会调用SQL Server中的一个新属性,我们称之为common table expression(CTE),从本质上来说,我们可以将CTE看作是高版本的临时表。
  分页的实质就是CTE中的TSQL语句。在下面的选择语句中,我使用了一个新的排序函数ROW_NUMBER(这一函数很容易使用,你只需要给ROW_NUMBER函数提供一个域名作为参数,ROW_NUMBER会用它来进行分页)。随后,我使用@PageSize参数来划分每页的行数以及每页的最大行数值。
  例如,假设现在有一个包含三条记录的数据集,并设计每页显示两条记录,那么头两条记录将会在第一页显示,因为每页的行数必须小于或者等于第一个变量值。第三条记录将会在第二页显示,因为每页的可显示最大行数值应该小于2但是又大于1。
  就如你所看到的,程序执行后将会返回一页的数据,包含三条记录,而且返回的是第二页的数据集。
  一般来说,有两种方法完成数据结果的分页:在数据库层实现和不在数据库层实现。可以在客户端实现分页,但是这样做的时候,所有的数据都会返回到客户端,而且在进行数据分析的时候就决定了页面数目。在早期版本的SQL Server中,可以在数据库层实现分页,但是需要临时表和表变量。如果上面的例子没有使用CTE来进行分页的话,分页程序就不会那么简单。kone娱乐平台客户端,之所以这么简单就是因为使用了ROW_NUMBER函数的强大功能。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|kone娱乐平台官方下载官网隆重推出kone娱乐平台官网手机版【随时随地畅玩】

GMT+8, 2018-12-14 20:25 , Processed in 0.139289 second(s), 23 queries .

Powered by Discuz! X3.2

© 2010-2020 Comsenz Inc.

快速回复 返回顶部 返回列表