博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读书笔记--SQL必知必会03--排序检索数据
阅读量:6253 次
发布时间:2019-06-22

本文共 5080 字,大约阅读时间需要 16 分钟。

3.1 排序数据

子句(clause)

SQL语句由子句构成。一个子句通常由一个关键字加上所提供的数据组成。
ORDER BY子句可以取一个或多个列的名字,将SELECT语句检索出的数据进行排序。
ORDER BY子句可以使用非检索的列排序数据。
ORDER BY子句必须作为SELECT语句中最后一条子句。

MariaDB [sqlbzbh]> SELECT prod_name FROM Products ORDER BY prod_name;+---------------------+| prod_name           |+---------------------+| 12 inch teddy bear  || 18 inch teddy bear  || 8 inch teddy bear   || Bird bean bag toy   || Fish bean bag toy   || King doll           || Queen doll          || Rabbit bean bag toy || Raggedy Ann         |+---------------------+9 rows in set (0.00 sec)MariaDB [sqlbzbh]> MariaDB [sqlbzbh]> SELECT prod_name FROM Products ORDER BY vend_id;+---------------------+| prod_name           |+---------------------+| 8 inch teddy bear   || 12 inch teddy bear  || 18 inch teddy bear  || Fish bean bag toy   || Bird bean bag toy   || Rabbit bean bag toy || Raggedy Ann         || King doll           || Queen doll          |+---------------------+9 rows in set (0.00 sec)MariaDB [sqlbzbh]>

3.2 按多个列排序

要按多个列排序,简单指定列名,列名之间用逗号分开即可。

在按多个列排序时,排序的顺序完全按规定进行。也就是说,仅在前一列的多个行具有相同的值时,才按照下一列进行排序。

MariaDB [sqlbzbh]> SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price,prod_name;+---------+------------+---------------------+| prod_id | prod_price | prod_name           |+---------+------------+---------------------+| BNBG02  |       3.49 | Bird bean bag toy   || BNBG01  |       3.49 | Fish bean bag toy   || BNBG03  |       3.49 | Rabbit bean bag toy || RGAN01  |       4.99 | Raggedy Ann         || BR01    |       5.99 | 8 inch teddy bear   || BR02    |       8.99 | 12 inch teddy bear  || RYL01   |       9.49 | King doll           || RYL02   |       9.49 | Queen doll          || BR03    |      11.99 | 18 inch teddy bear  |+---------+------------+---------------------+9 rows in set (0.00 sec)MariaDB [sqlbzbh]>

3.3 按列位置排序

ORDER BY支持按相对列位置进行排序。

优点是不用重新输入列名,缺点是容易造成错误排序。个人不建议使用。
如果有必要,可以混合使用实际列名和相对列位置。

MariaDB [sqlbzbh]> SELECT prod_id,prod_price,prod_name FROM Products ORDER BY 2,3;+---------+------------+---------------------+| prod_id | prod_price | prod_name           |+---------+------------+---------------------+| BNBG02  |       3.49 | Bird bean bag toy   || BNBG01  |       3.49 | Fish bean bag toy   || BNBG03  |       3.49 | Rabbit bean bag toy || RGAN01  |       4.99 | Raggedy Ann         || BR01    |       5.99 | 8 inch teddy bear   || BR02    |       8.99 | 12 inch teddy bear  || RYL01   |       9.49 | King doll           || RYL02   |       9.49 | Queen doll          || BR03    |      11.99 | 18 inch teddy bear  |+---------+------------+---------------------+9 rows in set (0.00 sec)MariaDB [sqlbzbh]>

3.4 制定排序方向

默认的排序顺序是升序排序(从A到Z)。

可以使用ORDER BY子句进行降序排序(从Z到A),但必须指定DESC关键字。
DESC关键字只应用到直接位于其前面的列名。如果想在多个列上进行降序排序,必须对每一列指定DESC关键字。
DESC是DESCENDING的缩写,这两个关键字都可以使用。
ASC是ASCENDING的缩写,因为升序是默认的,所以不必指定关键字。

MariaDB [sqlbzbh]> SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price;+---------+------------+---------------------+| prod_id | prod_price | prod_name           |+---------+------------+---------------------+| BNBG01  |       3.49 | Fish bean bag toy   || BNBG02  |       3.49 | Bird bean bag toy   || BNBG03  |       3.49 | Rabbit bean bag toy || RGAN01  |       4.99 | Raggedy Ann         || BR01    |       5.99 | 8 inch teddy bear   || BR02    |       8.99 | 12 inch teddy bear  || RYL01   |       9.49 | King doll           || RYL02   |       9.49 | Queen doll          || BR03    |      11.99 | 18 inch teddy bear  |+---------+------------+---------------------+9 rows in set (0.00 sec)MariaDB [sqlbzbh]>  MariaDB [sqlbzbh]> SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price DESC;+---------+------------+---------------------+| prod_id | prod_price | prod_name           |+---------+------------+---------------------+| BR03    |      11.99 | 18 inch teddy bear  || RYL01   |       9.49 | King doll           || RYL02   |       9.49 | Queen doll          || BR02    |       8.99 | 12 inch teddy bear  || BR01    |       5.99 | 8 inch teddy bear   || RGAN01  |       4.99 | Raggedy Ann         || BNBG01  |       3.49 | Fish bean bag toy   || BNBG02  |       3.49 | Bird bean bag toy   || BNBG03  |       3.49 | Rabbit bean bag toy |+---------+------------+---------------------+9 rows in set (0.00 sec)MariaDB [sqlbzbh]> MariaDB [sqlbzbh]> SELECT prod_id,prod_price,prod_name FROM Products ORDER BY prod_price DESC, prod_name;+---------+------------+---------------------+| prod_id | prod_price | prod_name           |+---------+------------+---------------------+| BR03    |      11.99 | 18 inch teddy bear  || RYL01   |       9.49 | King doll           || RYL02   |       9.49 | Queen doll          || BR02    |       8.99 | 12 inch teddy bear  || BR01    |       5.99 | 8 inch teddy bear   || RGAN01  |       4.99 | Raggedy Ann         || BNBG02  |       3.49 | Bird bean bag toy   || BNBG01  |       3.49 | Fish bean bag toy   || BNBG03  |       3.49 | Rabbit bean bag toy |+---------+------------+---------------------+9 rows in set (0.00 sec)MariaDB [sqlbzbh]>

转载于:https://www.cnblogs.com/anliven/p/6201060.html

你可能感兴趣的文章
easyui combobox两种不同的数据加载方式
查看>>
Smarty配置与实例化
查看>>
***Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象...
查看>>
Siege——多线程编程最佳实例
查看>>
c# 生成 验证码
查看>>
SQL Server 触发器
查看>>
何为SLAM
查看>>
[工具]infolite-chrome插件css插件
查看>>
javascript 深拷贝
查看>>
【代码小记】无
查看>>
【知识点】Java机密
查看>>
BarTender 2016表单中的“秤显示”控件
查看>>
全面理解javascript的caller,callee,call,apply概念[转载]
查看>>
Jquery 下拉框取值
查看>>
IDEA中使用Maven创建Java Web项目
查看>>
2017.12.25
查看>>
react--1.创建项目
查看>>
11月20日学习内容整理:jquery插件
查看>>
预科班第四次考核总结
查看>>
html
查看>>