首页 > 数据库 > 文库 > 正文

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

2023-05-28 13:17:57
字体:
来源:转载
供稿:网友

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

具体语法格式如下:

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

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

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

下面举例说明

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

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

查询语句为:

SELECTFROM 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)排序时,其排在最后面。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表