首 页IT知识库翔宇问吧收藏本站
当前位置:翔宇亭IT乐园IT知识库数据库SQL专栏

SQL语句中排序子句ORDER BY的使用方法

减小字体 增大字体 作者:biye5u.com  来源:本站原创  发布时间:2012-01-29 13:36:59

在查询过程中,我们经常需要按照某一列对查询结果进行排序,这在SQL语言中使用ORDER BY子句来实现。

具体语法格式如下:

SELECT <类名表> FROM <表名> [查询条件]  ORDER BY <要排序的列名> ASC | DESC

其中,红色字体部分就是要进行排序的子句,ASC为按排序依据列进行升序排序,即列的值从小到大进行排序;DESC为按排序依据列进行降序排序,即列值从大到小进行排序。

如果,没有指定排序方法,即省略ASC和DESC的话,则按升序(ASC)进行排序。

下面举例说明

假设数据库有一个表为学生表(student),具有学号(sno),姓名(sname),性别(ssex),年龄(sage)等列。

(1)查询全部学生信息,结果按年龄从大到小进行排序(降序)

查询语句为: SELECT *  FROM student ORDER BY sage DESC

(2)查询女学生的学号、姓名和年龄,结果按年龄进行升序排序(从小到大)

查询语句为: SELECT sno,  sname, sage FROM student WHERE ssex = '女' ORDER BY sage ASC

其中,ASC可以省略,因为默认即为升序排序

SELECT sno, sname, sage FROM student WHERE ssex = '女' ORDER BY sage

在查询过程中可以指定对多列进行排序,其语法格式如下:

ORDER BY 列名1 ASC | DESC, 列名2 ASC | DESC, 列名3 ASC | DESC,...

(3)查询学号前四位为2012的学生的学号、姓名和年龄,结果按年龄降序排序,按学号升序排序

查询语句为: SELECT sno, sname, sage FROM student 
                                                 WHERE sno LIKE '2012%' ORDER BY sage DESC, sno ASC

其含义为,查询结果首先按学生的年龄进行排序,如果年龄相同的话,再按学号从小到大进行排序

注意事项:

(1)并非所有数据类型的列都可以参与排序:数据类型为text, ntext, image的列不能参与排序;

(2)对于排序列中含有空值(什么是空值)的列,当升序(ASC)排序时,其排在最前面;当为降序(DESC)排序时,其排在最后面。

本文为本站原创,如要转载,请给出本文链接。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 1分

内 容:

            请注意用语文明且合法,不要发布带有攻击性、侮辱性的言论,谢谢合作!

         通知管理员 验证码:

关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图 | 用户守则 | 联系我们 |
本站大多数内容来自互联网或网站会员发布,如有侵权,请来信告之,谢谢!
Copyright © 2007-2017 biye5u.com. All Rights Reserved.
网站备案号:黑ICP备13005378号-3