在SQL中使用SELECT查询的ORDER BY子句(下)

日期: 2009-05-07 作者:John L. ViescasMichael J. Hernandez翻译:陈柳/曾少宁 来源:TechTarget中国 英文

在ORDER BY子句的字段中有一个很有趣的地方是我们可以为每个字段指定一个不同的排序顺序。在前面的例子中,我们可以为包含“姓”的字段指定降序排序,而对包含“名”的字段指定升序排序。修改之后,SELECT语句变成这样:    SQL SELECT EmpLastName, EmpFirstName, EmpPhoneNumber, EmployeeID FROM Employees ORDER BY EmpLastName DESC, EmpFirstName ASC   虽然我们并不需要明确地使用ASC关键字,但是如果我们将它包含在内,那么语句会更加清晰。   前面这个例……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

在ORDER BY子句的字段中有一个很有趣的地方是我们可以为每个字段指定一个不同的排序顺序。在前面的例子中,我们可以为包含“姓”的字段指定降序排序,而对包含“名”的字段指定升序排序。修改之后,SELECT语句变成这样:

  

SQL

SELECT EmpLastName, EmpFirstName, EmpPhoneNumber, EmployeeID 
FROM Employees 
ORDER BY EmpLastName DESC, EmpFirstName ASC

  虽然我们并不需要明确地使用ASC关键字,但是如果我们将它包含在内,那么语句会更加清晰。

  前面这个例子引发了一个有趣的问题:在ORDER BY子句中字段的顺序是否很重要?答案是肯定的!顺序是很重要的,因为数据库系统将从左到右评估ORDER BY子句中的字段。同时,顺序的重要性是与我们所使用的字段的数目成正比的。要总是保证ORDER BY子句中的字段的顺序恰当,这样结果才会按照恰当的顺序排序。

  注意:微软的数据库产品(Microsoft Office Access and Microsoft SQL Server)包含一个很有趣的扩展,它通过在SELECT子句中使用TOP关键字来允许根据ORDER BY子句请求一个子集的记录行。比如,我们可以通过请求找到Sales Orders数据库中五个最贵的产品:


SELECT TOP 5 ProductName, RetailPrice
FROM Products
ORDER BY RetailPrice DESC

  数据库按照价格降序的方式排序Products表中的记录行,然后返回前面五行记录。这两个数据库系统都允许我们以百分数的形式指定返回的行数。比如,我们可以通过请求价格排在前10%的产品:


SELECT TOP 10 PERCENT ProductName, RetailPrice
FROM Products
ORDER BY RetailPrice DESC

  事实上,如果我们想要在一个视图中指定ORDER BY,那么SQL Server会要求我们使用TOP关键字。如果我们想要所有的行,那么我们必须指定TOP 100 PERCENT。因此,我们将看到所有包含ORDER BY子句的SQL Server的示例视图都指定了TOP 100 PERCENT。而在Microsoft Access则没有这样的限制。

  保存工作

  保存SELECT语句——每个主流的数据库软件程序都提供给我们一种保存SQL的方法。当我们需要在数据库上发出相同请求时,保存语句将减少我们重复创建的时间。当我们保存了SELECT语句后,设置一个有意义的名称将有助于我们记住该语句所提供了什么样的信息。同时,如果我们的数据库软件支持这样的操作,那么可以写入一个简明的描述说明语句的作用。当我们有一段时间没有查看特定的SELECT语句,而我们又需要记住我们之前为什么创建它时,这个简单的描述将变非常有用。

  一个已保存的SELECT语句是在不同的数据库程序中可能被分类为不同的对象,有的是一个查询,有的是一个视图、方法或者存储过程等。除了名称,每个数据库程序会提供给我们一种执行、或者运行已保存语句以及操作运行结果集的方法。

  注意:对于接下来的探讨,我们将使“查询”来代表已保存的SELECT语句,并用“执行”代表操作它的方法。

  执行查询常见的方法有两种。第一种是通过交互式设备(如工具栏或查询网格上的命令)操作,而第二种是在程序代码中操作。第一种方法的使用是很广泛的。而第二种方法只有当我们使用数据库软件的程序语言时才需要。虽然教导你如何创建和使用SQL语句是我们的职责所在,然而,在你的数据库软件程序上创建、存储和执行它们则是你应该去学习的。

相关推荐