`
小小白
  • 浏览: 36019 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mysql 对多列进行排序

    博客分类:
  • JAVA
阅读更多
4.4.2 对多列进行排序
http://book.51cto.com  2008-06-04 16:14  马军/李玉林等编著  电子工业出版社  我要评论(0)

    * 摘要:《SQL语言与数据库操作技术大全:基于SQL Server实现》第4章主要讲的是基本的查询,所谓查询就是让数据库服务器根据客户端的要求搜寻出用户所需要的信息资料,并按用户规定的格式进行整理后返回给客户端。本节为您介绍对多列进行排序。
    * 标签:SQL语言  数据库  ORDER BY  SQL Server  SQL语言与数据库操作技术大全
    *
      Oracle帮您准确洞察各个物流环节

4.4.2  对多列进行排序

使用ORDER BY子句也可以根据两列或多列的结果进行排序,只要用逗号分隔开不同的排序关键字就可以了。如下面的语句:

ORDER BY  col1 DESC,col2,……,colm

其实际排序结果是根据ORDER BY子句后面列名的顺序确定优先级的。即查询结果首先以列col1的降序顺序进行排序,而只有当列col1出现相同的信息时,这些相同的信息再按col2列的升序进行排序,依此类推。

实例33  对多列进行排序操作

本实例实现在BookInfo表中,查询所有的图书信息,结果按照publish列的降序和pubdate列的升序顺序排序。实现代码如下:

USE Library
SELECT *
FROM BookInfo
ORDER BY publish DESC,pubdate  

运行该代码,得到的查询结果如图4.35所示。

图4.35  多列排序的查询结果

可见,系统根据排序的优先级,首先依据publish字段的记录进行降序排序(汉语拼音的首字母),当publish字段的记录相同时,再依据pubdate字段的记录进行升序排序。

另外,ORDER BY 子句除了可以根据列名进行排序外,还支持根据列的相对位置(即序号)进行排序。

如下面的语句:

SELECT  col1,col2,……,coln
FROM   table_name
ORDER BY   2,1

此时,ORDER BY子句后面的序号实际上就是SELECT关键词后面的列名的序号。此时ORDER BY子句就等同于ORDER BY col2,col1。
实例34  使用序号对多列进行排序操作

本实例实现在BookInfo表中,查询所有的bookid、bookname、publish、pubdate和price信息,并通过使用序号的方式对结果按照publish列的降序和pubdate列的升序顺序排序。实现代码如下:

USE Library
SELECT bookid,bookname,publish,pubdate,price
FROM BookInfo
ORDER BY 3 DESC,4


运行该代码,得到的查询结果如图4.36所示。

当ORDER BY所需要的列不在SELECT语句所选的范围内时,采用列的序号显然是行不通的。当然,可以将列别与序号混合起来解决这个问题。

图4.36  使用序号进行多列排序的查询结果
分享到:
评论

相关推荐

    mysql行转列(将同一列下的不同内容的几行数据,转换成几列显示)、列转行、行列汇总、合并显示

    MySQL 行转列、列转行、行列汇总、合并显示 MySQL 行转列是一种常用的数据处理操作,用于将同一列下的不同内容的几行数据转换成几列显示。例如,我们有一个成绩表 tb_score,其中包含 userid、subject 和 score 三...

    MySQL优化篇:排序分组优化.pdf

    MySQL优化篇:排序分组优化,主要关注的是在使用order by和group by关键字进行查询时的性能优化。order by关键字用于对查询结果进行排序,而group by关键字用于对数据进行分组汇总。这两个操作在SQL语句中非常常见,...

    MySQL之聚合查询、分组和排序

    排序是按照一个或多个列的值对结果集进行排序的过程。MySQL中的`ORDER BY`子句用于实现这一目的。 - **基本用法**: - `SELECT column_name(s) FROM table_name ORDER BY column_name ASC|DESC;` - 示例:按成绩...

    MySQL分组排序功能

    本文将详细介绍如何在MySQL中实现类似Oracle中`row_number() over (partition by)`的功能,即按照指定列进行分组,并在每个分组内进行排序。 #### 实现步骤详解 ##### 1. 创建示例表与数据 首先,我们需要创建一...

    MySQL DQL - 排序查询.md

    2. **多列排序** 当需要按照多个列进行排序时,可以在 `ORDER BY` 后指定多个列名,用逗号分隔。排序时会先按照第一个列排序,相同的情况下再按照第二个列排序,以此类推。 ```sql SELECT column_name FROM ...

    使用SQL实现的冒泡排序算法 mysql数据库

    在MySQL中处理数组通常需要使用其他方法,如多个列、临时表或JSON字段。 为了在一个实际的MySQL环境中实现冒泡排序,你可能需要将数据存储在临时表中,并使用多个查询和更新语句来模拟冒泡排序的过程。但这将非常...

    MySQL数据库:排序.pptx

    MySQL数据库中的排序功能是SQL查询中的重要组成部分,它允许用户按照特定的标准对查询结果进行...- 可以进行多列排序,以满足复杂的需求。 熟练掌握这些排序技巧,将有助于在处理和分析数据库数据时提高效率和准确性。

    单击列标题排序

    这个功能允许用户通过简单地点击表格或网格中的列标题来对显示的数据进行升序或降序排序。下面我们将深入探讨这个功能的相关知识点。 首先,我们来看“控件”。在Windows应用程序中,如基于Visual Basic或Power...

    MySQL中对查询结果排序和限定结果的返回数量的用法教程

    MySQL Order By 查询结果排序 ORDER BY ...ORDER BY 后面必须列出排序的字段名,可以是多个字段。 对 user 表 uid 进行降序查询: SELECT uid,username FROM user ORDER BY uid DESC 查询结果如下:

    MySQL中利用索引对数据进行排序的基础教程

    利用索引进行排序操作是非常快的,而且可以利用同一索引同时进行查找和排序操作。当索引的顺序与ORDER BY中的列顺序相同且所有的列是同一方向(全部升序或者全部降序)时,可以使用索引来排序。如果查询是连接多个表,...

    MySql 按时间段查询数据方法(实例说明)

    随着对更复杂时间范围查询需求的增加,可以结合更多的时间函数和操作符来满足更高级的查询需求,例如查询特定年份、季度、周等。随着数据库管理经验的累积,熟练掌握这些时间相关函数将大大提高开发效率和数据处理的...

    mysql多条件索引

    MySQL中的索引是一种提高查询效率的关键技术,它利用特定的数据结构,如B-Tree,对数据库表中的某一列或多列进行排序,使得存储引擎能够快速定位到数据行。索引优化是数据库性能优化的核心策略之一。 单列索引是...

    超级列表框数据库排序

    5. **多列排序**:在某些情况下,用户可能希望对多个列进行排序。在这种情况下,需要维护一个排序优先级列表,每次点击列头时,根据当前列在列表中的位置来确定是否改变排序方向或调整优先级。 6. **异步排序**:...

    第05章_排序与分页.docx

    多列排序是指对多个列进行排序。例如: ```sql SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC; ``` 这条语句将按照 department_id 列和 salary 列对查询结果进行...

    MYSQL

    7.3.10 多列索引 7.3.11 使用来自其他数据库引擎的列类型 7.4 用在SELECT和WHERE子句的函数 7.4.1 分组函数 7.4.2 常用的算术运算 7.4.3 位函数 7.4.4 逻辑运算 7.4.5 比较运算符 ...

    MySql MySql使用方法 Mysql例子

    MySQL提供了一套完善的权限系统,可以控制用户对数据库、表甚至列的操作权限。`GRANT`和`REVOKE`命令分别用于赋予和撤销权限。 8. 备份与恢复 使用`mysqldump`工具可以对MySQL数据库进行备份,而`mysql`客户端...

    MySQL对中文进行排序详解及实例

    在MySQL数据库中,对中文数据进行排序并非像处理英文数据那样直观简单。默认情况下,MySQL按照数据的字节顺序进行排序,而非字符的逻辑顺序,这在处理中文字符时可能会导致预期之外的结果。中文字符通常由多个字节...

    MySQL asc、desc数据排序的实现

    当需要按照多个字段排序时,可以在`ORDER BY`子句中列出这些字段,用逗号分隔,并可以为每个字段指定排序方式。例如,如果要先按职位(`job`)降序,再按薪水(`sal`)降序排列,可以写成: ```sql SELECT ename,...

    MYSQL order by排序与索引关系总结1

    首先,遵循**最左前缀法则**是优化多列索引的关键。这意味着,如果一个查询从索引的最左边开始,并且不跳过任何列,那么索引就可以被有效地利用。例如,对于索引`uid_fuid`,查询`SELECT * FROM friends WHERE uid =...

Global site tag (gtag.js) - Google Analytics