若sql语句中order by指定了多个字段,则怎么排序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了若sql语句中order by指定了多个字段,则怎么排序?相关的知识,希望对你有一定的参考价值。
参考技术Aorder by id desc,time desc
先是按 id 降序排列 (优先)
如果 id 字段 有些是一样的话 再按time 降序排列 (前提是满足id降序排列)
order by name, age desc
name优先
name一样的话,就按age排序。
后面再加第三列的话,也是一样 以此类推下去。
扩展资料:
mySql order by 几种排序的写法
1、单列升序:select<column_name> from <table_name> order by <column_name>; (默认升序,即使不写ASC)
2、单列降序:select <column_name> from <table_name> order by <column_name> desc;
3、多列升序:select <column_one>, <column_two> from <table_name> order by <column_one>, <column_two>;
4、多列降序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> desc;
5、多列混合排序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> asc;
SQL order by的用法
首先,order by是用来写在where之后,给多个字段来排序的一个DQL查询语句。
其次,order by写法:
1. select 字段列表/* from 表名 where 条件 order by 字段名1 asc/desc, 字段名2 asc/desc,.......
2. select 字段列表/* from 表名 where 条件 order by 字段序号 asc/desc, 字段序号 asc/desc,....... (此时字段序号要从1开始)
3. select 字段列表/* from 表名 where 条件 order by 字段别名1 asc/desc, 字段别名2 asc/desc,.......(这里类似于第一种,无非就是把字段名加了个别名来代替而已。)
然后,order by的方式:
1.asc 升序,可以省略,是数据库默认的排序方式
2.desc 降序,跟升序相反。
最后要注意order by的原则,写在最前面的字段,他的优先级最高,也就是写法中第一个的字段名1的优先级最高,优先执行他的内容。
下面举个栗子吧!
这里我有几个表
首先以sclass的降序查找student表中的记录
写法为:
select * from student t order by t.sclass desc;
输出为:
可以看到是以sclass的降序排列的。
再来:以Cno升序、Degree降序查询Score表的所有记录。
写法为:
select * from score s order by s.cno, s.degree desc;
输出为:
可以看到是优先以cno的升序来排列的,在cno相同的里面再以degree的降序来排列的。
所以总结一下,order by的用法就是用来做排序,写在where之后,简单明了。
以上是关于若sql语句中order by指定了多个字段,则怎么排序?的主要内容,如果未能解决你的问题,请参考以下文章