?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

紫金岛长沙麻将打不开:long8国际手机版:探讨SQL Server 2005的评价函数

?

长沙转转麻将必胜口诀 www.fv7j.com.cn 一、 简介

在2005年11月份,微软发行了三种新产品系列:Visual Studio 2005,SQL Server 2005和.NET框架2.0(它包括ASP.NET 2.0)。SQL Server 2005是微软自从其上一个主要发行版本SQL Server 2000以来最新版本的数据库平台。在以前五年的成长中,SQL Server中加入了大年夜量的新特性,所有这些新内容都被总结到微软网站的一篇文章《What's New in SQL Server 2005?》中。应用SQL Server 2005作为后端数据库构建基于web利用法度榜样的开拓者很可能会对这些新特性抱有浓厚的兴趣,这些新特性包括新的T-SQL改进,更好的Visual Studio集成,与CLR/.NET框架的集成,以及SQL Server 2005 Manalong8国际手机版gement Studio利用法度榜样(它是SQL Server 2000的企业治理器的一个更为"平滑"的版本)。

与曩昔的SQL Server 2000比拟, 2005中的T-SQL改进使得编写某些类型的查询极为轻易。在SQL Server 2005中,T-SQL语法更为精练、可读和易于理解。

在本文中,我们将专门探究SQL Server 2005的评价函数,它们大年夜大年夜简化了对查询结果进行评价的历程。

二、 数据模型和评价结果根基

在我们阐发若何应用通俗查询模式之前,让我们起开创建一个能够运行这些查询的数据模型。在本文中,我应用SQL Server 2005 Express版原先实现我的演示,并且包括了一个数据库和一个ASP.NET 2.0网站(请参考本文响应的完备源码。就象Visual Studio一样,SQL Server发行中也一同加杂了其它一些不合的版本。此中,Express版本是一个针对业余喜欢者、门生等群体的免费版本。假如你下载和安装Visual Web Developer(Visual Studio针对web开拓者的Express版本),那么你可以选择一同安装SQL Server 2005 Express版本)。

对付本文中的示例,我们将应用一个含有产品、贩卖职员(雇员)、顾客和订单信息的数据库。我们应用五个表来建模:Customers,Employees,Products,Orders和OrderItems。此中,Customers,Employees和Products表分手包孕每一个顾客,雇员和产品信息的行记录数据。每当一个顾客进行购long8国际手机版买活动,一条新记录被添加到Orders表中,此中的信息唆使该顾客实现了购买、该雇员进行的这一贩卖活动及订单的日期。此中,OrderItems映射订单中的每一件产品,产品的数量和价格总值(假定较long8国际手机版大年夜的购买量可以long8国际手机版打折)。下图展示了这些表(及字段)以及它们之间的关系。

如图所展示的,这个OrderItems在Orders和Products表之间建立一个对多对的连接。

当构建申报或阐发数据时,用户或治理员常常盼望看到以某种要领对数据的评价信息。例如,你的老板可能想要一个申报来显示卖路最好的前十项,或在第三个季度贩卖部中实现最大年夜收入的前三名贩卖职员。更繁杂的环境可能是仅返回第3到第5个评价排名的贩卖职员。在SQL Server 2000中,返回最高排名项的查询可以经由过程应用TOP或ROWCOUNT关键字来实现。为了检索一个特定评价子集,你必要应用一种"派生表"(或者是一种基于视图的手段)。

SQL Server 2005中引入了四个新的评价函数:ROW_NUMBER,RANK,DENSE_RANK和NTILE。只管这些与SQL Server 2000所供给的long8国际手机版函数比拟是一个显着的进步,然则这些函数的应用仍旧存在一些限定(要求应用派生表或视图来实现功能更为强大年夜的利用法度榜样)。下面让我们阐发一下每一个函数。

三、 应用ROW_NUMBER函数谋略行数

这个ROW_NUMBER函数把一个序数值赋给每一个返回的记录,该序数值依附于一个特定的与这个函数一路应用的ORDER BY语句。函数ROW_NUMBER的语法是:ROW_NUMBER() OVER([partition] ORDER BY子句)。例如,下列查询将返回从最贵的到最便宜的产品,对每一种产品按价格进行评价:

SELECT ProductID,Name,Price, ROW_NUMBER() OVER(ORDER BY Price DESC) As PriceRankFROM Products

这个语句的履行结果如下表所示:

[1]

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: