当前位置: 首页 > news >正文

SQL | 排序检索的数据

3-排序检索的数据

使用order by语句排序检索到的数据。

3.1-排序数据

使用SQL语句返回一个数据表的列。

select prod_id 
from products;

+---------------------+

| 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)

并没有固定的排序,如果不指定排序方式,默认检索出的数据是按照数据在表中的数据。

子句,SQL语句是由子句构成的,有些子句是必须的,有些子句是可选的。

一个子句通常由:一个关键字加上所提供的数据组成。

子句的例子有我们在前面看到的SELECT语句的FROM子句。

为了明确排序select检索出的数据,使用order by子句。order by子句取一个或多个列的名字。

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)

使用order by子句时,保证它是最后一条子句,如果不是最后一条子句,可能会报错。

上述子句按照字母顺序从前往后排序。

有时候需要按照多列进行排序。

select prod_id,prod_name,prod_price
from products
order by prod_price, prod_name;

+---------+---------------------+------------+

| prod_id | prod_name | prod_price |

+---------+---------------------+------------+

| BNBG02 | Bird bean bag toy | 3.49 |

| BNBG01 | Fish bean bag toy | 3.49 |

| BNBG03 | Rabbit bean bag toy | 3.49 |

| RGAN01 | Raggedy Ann | 4.99 |

| BR01 | 8 inch teddy bear | 5.99 |

| BR02 | 12 inch teddy bear | 8.99 |

| RYL01 | King doll | 9.49 |

| RYL02 | Queen doll | 9.49 |

| BR03 | 18 inch teddy bear | 11.99 |

+---------+---------------------+------------+

9 rows in set (0.00 sec)

检索出的结果首先按照prod_price排序,如果prod_price相同,就按照prod_name进行排序。

如果price的值都是唯一的,则不会按照name进行排序。

除了使用列名进行排序,还可以使用相对列位置进行排序。

select prod_id,prod_price,prod_name
from products
order by 2,3;

2表示使用第二列进行排序,也就是id,price,name中的第二列进行排序,3表示使用第三列进行排序。

好处是不用重复输入列名,但是坏处是容易搞错要排列的列,修改select语句时,可能忘记更改排列。

3.2-指定排序方向

数据排序默认的排序是A到Z,可以使用order by子句进行降序排序,从Z到A排序。使用关键字desc。

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)

按照price从高到低进行排序。

3.3-多列排序

select prod_id,prod_price,prod_name
from products
order by prod_price desc,prod_name;

上述语句先对prod_price进行降序排列(价格由高到低),如果遇到价格相同的两行,则按照名称升序排列(从A到Z)。

注意:如果想要在多个列上进行降序排列,必须对每一列指定desc关键字。默认为asc,升序排序。

desc是descending的缩写,这两个关键字都可以使用。与desc相对的是asc,是ascending的缩写。

默认情况下,在字典排序顺序中,A被视为与a相同,这是大多数数据库管理系统的默认做法。

许多DBMS允许数据库管理员在需要时改变这种行为。

http://www.lryc.cn/news/120352.html

相关文章:

  • 8. yaml文件管理
  • Cobbler自定义yum源
  • 《算法竞赛·快冲300题》每日一题:“特殊数字”
  • 在R中比较两个矩阵是否相等
  • 商城-学习整理-基础-商品服务API-属性分组(七)
  • 什么是响应式设计?列举几种实现响应式设计的方法。
  • Java类和对象(一文读懂)
  • 用友移动管理系统 任意文件上传漏洞复现(HW0day)
  • 启动springboot,出现Unable to start embedded Tomcat
  • 加密和安全
  • Maven基础总结
  • Java 编程实战:如何用 Java 编写一个简单而强大的 Tomcat
  • 【JavaSE】数组的定义与使用
  • 银河麒麟安装php7.1.33
  • Kubernetes集群部署上篇(安装部署,但是集群网络未部署)
  • 跨境电商中的安全挑战与隐擎Fox指纹浏览器的应用
  • 10. Docker Swarm(一)
  • 【MySQL】InnoDB存储引擎详解
  • 组合求和-矩阵连乘所有加括号方式_2023_08_12
  • 《3D 数学基础》12 几何图元
  • 【设计模式——学习笔记】23种设计模式——备忘录模式Memento(原理讲解+应用场景介绍+案例介绍+Java代码实现)
  • 致谢丨感谢有你,JumpServer开源项目九周年致谢名单
  • 使用 Python 和 Flask 构建简单的 Restful API 第 1 部分
  • 【深度学习所有损失函数】在 NumPy、TensorFlow 和 PyTorch 中实现(2/2)
  • Hazel 引擎学习笔记
  • Linux系统下Redis3.2集群
  • Android图形-合成与显示-SurfaceTestDemo
  • 高压放大器怎么设计(高压放大器设计方案)
  • SpringBoot yml配置注入
  • 中科亿海微乘法器(LPMMULT)