order by我们用过不知多少次了,但真的完全了解它的用法吗?
一。按照列名排序
这是最简单的方法,
select e from e_test order by e;
select e,d from e_test order by e,d;
select e from e_test order by e,d;
这三个语句都可以正常运行.当e相等时,按d排序,而且排序的列并不一定需要出现在select子句中。
二。根据表达式排序
select e from e_test order by substr(e,1,1);取开头的字符排序
order by子句中的表达式甚至可以包含子查询
如:select e from e_test order by abs(e-(select AVG(e) from e_test));
甚至可以是关联性子查询
如:select e,d from e_test as p1 order by (select AVG(d) from e_test as p2 where p1.e=p2.e);
三。使用顺序号码排序
select e,d from e_test order by d;
select e,d from e_test order by 2;
这两个sql语句是相等的,使用顺序号码不是必需的,但简化了一条语句的形式.
select e,sum(d) from e_test order by 2;
select e,d,(select sum(c) from e_test as p1 where p1.e=p2.e) from e_test as p2 order by 3;
在编写order by子句的时候应该尽量地显示化而避免混淆,尽可能使用别名.
如:select e,d,(select sum(c) from e_test as p1 where p1.e=p2.e) as total from e_test as p2 orber by total;此句与前面那句相等,但不容易混淆。
四。按照升序和降序排序
ASC DESC一个升一个降,直接跳过。(注:排序字符值比较复杂,不同的字符集有不同的顺序)
五。对空值排序
mysql把空值当作一列中的最小值对待。
六。按指定排序排序
这一点是我偶然在mysql性能优化一书看到的
create table enum_test e ENUM('fish','apple','dog') NOT NULL;
insert into enum_test(e) values ('fish'),('dog'),('apple');
select e from enum_test order by field(e,'apple','dog','fish');
出来的结果会按照field里的先后顺序排序。
最后提醒一句:注意索引,order by可能导致索引无效。
分享到:
相关推荐
### Group By 和 Order By 的使用方法及组合应用 在数据库查询语言 SQL(Structured Query Language)中,`GROUP BY` 和 `ORDER BY` 是两个非常重要的子句,它们可以帮助我们更高效地管理和展示数据。 #### GROUP ...
UNION ALL 与 ORDER BY 用法详解 UNION ALL 和 ORDER BY 是 SQL 语言中的两个基本操作符,分别用于合并查询结果和排序数据。在 Oracle PL/SQL 中, UNION ALL 和 ORDER BY 的使用需要遵循一定的规则和限制。本文将...
然而,当你尝试在创建视图时使用`ORDER BY`子句,SQL Server会报错,因为这不符合ANSI SQL-92标准。这个标准规定视图不应该包含任何影响结果集顺序的操作,如`ORDER BY`,主要是出于以下几个原因: 1. **可重用性**...
在SQL查询中,`ORDER BY`、`GROUP BY` 和 `HAVING` 是三个非常重要的子句,它们分别用于不同的数据处理操作。 1. **ORDER BY** 子句: - `ORDER BY` 用于对查询结果进行排序,按照指定的字段进行升序或降序排列。...
MySQL中union和order by是可以一起使用的,但是在使用中需要注意一些小问题,下面通过例子来说明。首先看下面的t1表。 1、如果直接用如下sql语句是会报错:Incorrect usage of UNION and ORDER BY。 SELECT * FROM ...
`OrderBy` 方法是 LINQ(Language Integrated Query) 提供的一个非常方便的排序工具,它允许我们按照一种或多种字段对数据进行升序排序。在某些情况下,我们可能需要根据动态指定的字段进行排序,这在处理复杂数据...
自动添加 OrderBy 或者 ThenBy,只要一直调用 OrderIf 扩展函数就行。 扩展函数中将自动判断 传入的 IQueryable 是否有调用过 OrderBy 函数。
例如,如果你有一个包含人名的列表,你可以使用 `OrderBy` 来按照名字的字母顺序排列这个列表。`OrderBy` 需要一个谓词参数,这个谓词定义了排序的依据。在 C# 中,这通常是一个 lambda 表达式,如 `x => x.Name`,...
在实际开发中,我们经常需要对查询结果进行排序,MyBatisPlus为此提供了`orderBy`、`orderByDesc`和`orderByAsc`三个方法,方便我们实现条件排序。下面将详细介绍这三个方法的使用及原理。 `orderBy`方法是...
oracle数据库中order by的一些高级用法,该文件中,从order by的基本应用到order by的高级运用,该文件中均有体现
这意味着如果你期望`IN`列表内的值按照特定顺序输出,必须明确指定`ORDER BY`子句,将`IN`条件中的列作为排序依据。 在实际操作中,查看执行计划有助于理解Oracle如何处理查询。通过执行`EXPLAIN PLAN`或使用`DBMS_...
总结一下,LIKE和ORDER BY都是SQL查询中不可或缺的部分。LIKE提供了强大的字符串匹配功能,而ORDER BY则确保了查询结果的有序性。了解它们的用法和组合,能帮助我们在SQL查询中更加游刃有余。通过实际的数据库操作和...
使用nutz, 直接写sql查询 select 中包含 order by 查询出错的问题修正
order_by_、group_by_、having的用法区别
mysql 中order by 与group by的顺序是:selectfromwheregroup byorder by注意:group by 比order by先执行,order by不会对group by 内部进行排序,如果group by后只有一条记录,那么order by 将无效。要查出group ...
本文就和大家一起深入研究下mysql中group by与order by.下面是我模拟我的内容表 我现在需要取出每个分类中最新的内容 select * from test group by category_id order by `date` 结果如下 明显。这不是我想...
activiti5.9修复mysql order by 排序bug 详情见博客地址:http://blog.csdn.net/qq413041153/article/details/7740773#comments
因此,常常出现这样的错误 代码如下:select * from [IND] where INDID>10unionselect * from [IND] where INDID<9>10 order by INDID descunionselect * from [IND] where ...难道UNION和ORDER BY 不能同时存在? union
流顺序nodejs 上流 json 对象的 orderby ##例子: generator ( 5 ) . pipe ( orderBy ( [ { keys : 'grade.name,value' , reverse : true } , { getValue : function ( doc ) { return doc . age ; } , reverse : ...
- 在多表联接中,`ORDER BY`的字段不全来自第一个非常量表: - `ORDER BY`和`GROUP BY`表达式不同。 - 索引中的记录不是有序存储的,如`HASH`和`HEAP`表。 可以通过`EXPLAIN`语句查看MySQL是否在查询中使用了索引...