SQL必知必会 (第3课 排序检索数据)


SQL必知必会 学习之路


如果我们需要对检索的数据进行排序,需要使用ORDER BY字句。

3.1 排序数据

输入:

SELECT prod_name
FROM Products;

输出:
在这里插入图片描述
如果不排序,数据一般会以它在底层表中出现的顺序显示,如果不明确控制的话,那最后结果也不应该依赖排序关系。

为了明确排序,使用ORDER BY子句,ORDER BY子句取一个或多个列的名字,根据默认的升序进行排列。
输入:



SELECT prod_name
FROM Products
ORDER BY prod_name;

分析:
以字母顺序进行升序排序

输出:
在这里插入图片描述
*ORDER BY 位于SELECT语句中的最后一句,也可以使用非检索的列进行排序,完全合法。
*

3.2 按照多个列排序

实际上,我们需要经常对不止一个列进行排序,例如,我们希望对姓和名排序(首先对姓排序,其次在每个姓中根据名字排序)下面的代码检索3个列,按其中的两个列对结果进行排序-----首先根据价格排序,其次根据名称排序。
输入:

SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY prod_price,prod_name;

输出:
在这里插入图片描述

仅在多行具有相同的prod_price时,按照prod_name进行排序,如果prod_price每行都不同,则不会按prod_name排序.

3.3 按列位置排序

输入:

SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY 2,3;

输出:
在这里插入图片描述
可以看出,输出结果与3.2检索结果相同,不同之处在于ORDER BY子句,SELECT语句中指定的是列的相对位置而不是列名,如果对结果进行排序所需的列不在SELECT语句中,那么将无法使用。
提示:
可以混合使用相对位置、实际列名。

3.4 指定排序方向
使用DESC关键字对结果进行降序排序



SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY prod_price DESC;

输出:

如果价格相同时,可以按照prod_name进行排序(默认升序排序,降序排序使用DESC关键字),DESC不同于DISTINCT作用于所有列,它只作用于其前面的列名。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值