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

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

关于顺序   有了ORDER BY子句,我们可以以更有意义的方式来表现我们从数据库中检索到的信息。这对于简单的以及复杂的请求都是一样适用的。我们现在可以修改我们的请求,使它们包括一些排序的需求。比如,诸如”What are the categories of classes we currently offer?”的问题可以修改为”List the categories of classes we offer and show them in alphabetical orde.”。

   Translation Select category ……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

关于顺序

  有了ORDER BY子句,我们可以以更有意义的方式来表现我们从数据库中检索到的信息。这对于简单的以及复杂的请求都是一样适用的。我们现在可以修改我们的请求,使它们包括一些排序的需求。比如,诸如"What are the categories of classes we currently offer?"的问题可以修改为"List the categories of classes we offer and show them in alphabetical orde."。

  

Translation

Select category from the classes table and order by category

Clean Up

Select category from  classes  order by category

SQL

SELECT Category 
FROM Classes 
ORDER BY Category

  在运行SELECT查询之前,我们需要调整定义翻译语句的方式。这包括在翻译语句的后面添加一个新的部分来解释请求中指定的新排序要求。使用这个新的形式来定义翻译-语句。


Select <item> from the <source> and order by <column(s)>

  现在我们的请求中包含了诸如“sort the results by city”、“show them in order by year”或“list them by last name and first name”的短语,仔细地研究请求,然后确定我们需要在哪个字段或哪些字段来实现排序。这是一个简单的练习,因为大多数人都使用这些类型的短语,并且排序所需要的字段通常都是很明显的。在我们确定了恰当的一个或多个字段之后,就可以用它们替代翻译语句中的<column(s) >。让我们来看一下这个简单的请求是如何构造的。


 "List the categories of classes we offer and show them in alphabetical order."

  在这个例子中,我们可以假设将使用Category来排序,因为它是请求中唯一出现的字段。我们也可以假设排序是按照升序进行的,因为请求中并没有任何相反的要求。因此这是一个很可靠的假设。根据SQL Standard,如果我们没有指定排序顺序,那么升序排列是自动假设的。然而,如果我们想要更明确点,那么我们可以在ORDER BY子句的后面插入ASC。

  在下面的请求中,对于排序所需要的字段作了更明确地定义。


"Show me a list of vendor names in ZIP Code order."

  

Translation

Select vendor name and ZIP Code from the vendors table and order by ZIP Code

Clean Up

Select vendor name  ZIP Code from  vendors order by ZIP Code

SQL

SELECT VendName, VendZipCode 
FROM Vendors 
ORDER BY VendZipCode

  一般来说,大多数的人如果想看到降序排列的信息,他们都会明确地说明。当出现这种情况时,我们需要以相反的排列显示结果集,也就是在ORDER BY子句的特定字段后插入DESC关键字。比如,当我们想看到以ZIP代码降序排列的信息时,我们可以这样修改前面例子中的SELECT语句。

  

SQL

SELECT VendName, VendZipCode 
FROM Vendors
ORDER BY VendZipCode DESC

  下面的例子是一个要求多字段排序的更加复杂的请求。这个例子与前面的例子之间的不同在于在这个例子中的ORDER BY子句使用了更多的字段。注意,字段是由逗号分开的,这与图4-10所显示的语法图是一致的。


"Display the names of our employees, including their phone number and ID number, and list them by last name and first name."

  

Translation

Select last name, first name, phone number, and employee ID from the employees table and order by last name and first name

Clean Up

Select last name, first name, phone number,  employee ID from employees  order by last name  first name

SQL

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

相关推荐