T-SQL中的Select查询(续3)

原创 2006年06月11日 12:37:00

T-SQL中的Select查询(续)
SQL可以按照多个列来排序,并且用来排序的列不必是select语句要返回的结果列,所以排序列的方式具有很大的灵活性。如果确实需要对数据进行排序,那么就应当利用ordre by子句来实现它,这是一种好的开发习惯。
(1)    使用列名指定排序顺序
SELECT FirstName,LastName
FROM dbo.Customer
ORDER BY LastName,FirstName
(2)    使用表达式指定排序顺序
SELECT LastName +’,’ +FirstName AS FullName
FROM dbo.Customer
ORDER BY LastName +’,’ +FirstName
 order by子句使用表达式,可以解决一些令人头疼的问题。如:在下面的例子中,如果标题中包含有前导“The”,那么case表达式将把它从标题中去掉,并利用处理以后的结果来排序:
SELECT Title,Len(FableText) AS TextLength
FROM Fable
ORDER BY
     CASE
        WHEN SubString(Title,1,3)=’The’
           THEN SubString(Title,5,Len(Title)-4)
     ELSE Title
END
执行结果如下:
Title                                    TextLength
     --------------------------------------------    -------------------------------------------- 
     Androcles                                    1370
     The Ant and the Chrysalis                       1087
     The Ants and the Grasshopper                    456
     The Ass in the Lion’s Skin                       465
     The Bald Knight                               360
     The Boy and the Filberts                         435
     The Bundle of Sticks                            551
     The Crow and the Pitcher                        491
     … …                                        … …
(3)    使用列别名指定排序顺序
   在按照表达式排序时应当首选这种方法,因为它使得代码更容易读了。在下面的例子中,不仅使用了这种方法,而且还为其指定了降序的排序方式,而不是默认的升序排序:
   SELECT LastName +’,’ +FirstName AS FullName
      FROM dbo.Customer
      ORDER BY FullName DESC
 注意:虽然可以在order by子句中使用别名,但却不能在where子句中使用别名。这是因为在逻辑上where子句是在查询刚开始的时候执行的,此时还没有完成建立结果列及其别名的工作,因而不能使用别名;而order by子句却是最后一步执行的逻辑操作,此时结果列及其别名都已经创建了。
(4)    使用列的位置序号指定排序顺序
我不推荐大家使用这种方法,因为如果在select语句中改变了结果列的排列顺序,order by子句就会按照不同的列进行排序了。但是,我会在复杂的并查询中使用列的序号来指定排序的顺序。如:
SELECT LastName +’,’ +FirstName AS FullName
FROM dbo.Customer
ORDER BY 1
执行的结果如下:
FullName
---------------------------------------------
Adams,Joe
Anderson,Missy
Andrews,Debble
Bettys,Dave
… …
   

相关文章推荐

SQL学习(3) 查询 SELECT

数据查询操作:SELECT 查询是数据库中的核心部分,对数据库中的数据的使用必定离不开数据库的操作,该语句的功能丰富,使用也是比较方便的。 查询包括:无条件查询,有条件查询,分组查询,排序查询,多...

T-SQL语句之Select(一)

Operator Description != Tests two expressions not being equal to each other. ...

管家婆ERP V3Ⅱ采购入库单生成金蝶财务软件K3 V10.3标准凭证引入的SQL select 查询语句

说明:双&括起来的是变量,执行查询前须换为常量,如: &上日& SELECT a.BillDate AS FDate, MAX(YEAR(a.BillDate)) AS FYear,      ...

T-SQL入门攻略之3-SQL简单查询

SQL语言最强大的功能是数据查询。 准备工作 首先建立测试数据 if object_id('student')is not null drop table student go CREATE...

Oracle数据库 —— SQL之select语句(3) 单行函数

5 select语句5.4 单行函数

SQL 基础--SELECT 查询

  • 2013年09月11日 11:21
  • 77KB
  • 下载

MySql(3)------SQL基础之DML(Data Manipulation Language),不包含select语句

DML(Data Manipulation Language)语句: 数据操作语句,用于处理增删改查数据库记录,常用关键字insert,delete,update,select等等。 主要是对数据库记...
  • yhl_jxy
  • yhl_jxy
  • 2016年08月18日 09:22
  • 447

T-SQL教程-3

当遇到夸库查询时,可以采用这种方法: 库名.dbo.表名,当然更加建议您使用 不同的数据库连接语句来操作 前段时间,才更加清楚地认识到了COUNT(字段)与COUNT(*)之间的区别,亡羊补牢,为...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:T-SQL中的Select查询(续3)
举报原因:
原因补充:

(最多只允许输入30个字)