SQL中Order By的意义和用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中Order By的意义和用法相关的知识,希望对你有一定的参考价值。

参考技术A

以下内容参考 w3school 中关于SQL的教学,可以点击蓝字参考原文。

ORDER BY 语句用于 根据指定的列 结果集 进行 排序

ORDER BY 语句 默认 按照 升序 对记录进行排序。

如果您希望按照 降序 对记录进行排序,可以使用 DESC 关键字。

注:对字符串排序的时候会按 首字符 ASCII值 排列,如果首字符相同,则向后看一位。

原始的表 (用在例子中的):
Orders 表:

实例 1
以字母顺序显示公司名称:
SELECT Company, OrderNumber FROM Orders ORDER BY Company

实例2
以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber):
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
结果:

看此结果和上一结果不同之处在于,Company值相同的行,排序按照OrederNumber的升序排列。

实例 3
以逆字母顺序显示公司名称:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC
结果:

实例 4
以逆字母顺序显示公司名称,并以数字顺序显示顺序号:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
结果:

注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。

问题描述
mysql排序时如果用的字段为字符型,排序出来时这样的:
1,10,2,20,3,4,5
这种排序是按照字符从第一个字符开始比较出来的,但不是我们想要的,我们想要的是:
1,2,3,4,5……,10,20

解决方案
排序时,把相应的字段转换成整型,使用CAST函数,如下:
CAST(seat_row AS UNSIGNED)
将seat_row列转换为UNSIGNED的数值类型。

sql中得group by 用法?

就是分组进行譬如,学生表student里有多个班级(classID)的学生,现在要统计每个班有多少学生,就用select
classID,count(*)
as
num
from
student
group
by
classID,显示的结果就是班级号和班级的学生人数
参考技术A GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用

select A,count(B) 数量 from table group by A
这样的结果就是
A 数量
1 3
参考技术B SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
参考技术C 给你几个参考链接哈。
http://wenku.baidu.com/view/a9aeaec75fbfc77da269b144.html,http://baike.baidu.com/view/3483349.htm

参考资料:http://www.w3school.com.cn/sql/sql_groupby.asp

参考技术D select id,sum(amount) from table group by id

以上是关于SQL中Order By的意义和用法的主要内容,如果未能解决你的问题,请参考以下文章

OVER 子句中的 SQL ORDER BY 与 CLR 聚合不兼容?

SQL的GROUP BY 与 Order By

sql注入中order by的作用

ORDER BY SQLAlchemy 中的子查询

SQL中group by的用法

sql中的group by 和 having 用法解析