三、排序检索数据

2023-02-12  本文已影响0人  曾经像素有点低
工程师加油💪🏻.png
组合WHERE子句,使用NOT 和 IN 操作符
如何使用SELECT 语句的ORDER BY子句

1.1排序数据

ORDER BY 子句取一个或多个列的名字,据此对输出进行排序。

SELECT name 
FROM staff 
ORDER BY name;

1.2按多个列排序

通常有按照身高排序、按照成绩排序等。但有时候需要按照多个列排序。比如:按照年龄排序,年龄相同的,再按照身高排序:
要按照多个列排序,只须指定这些列名,列名之间用逗号隔开。

SELECT   id,  name,   age,  height 
FROM  people
ORDER  BY  age, height;

tips: 排序的优先级跟设置列名的顺序一致:
只有在 age存在多个相同的值的时候,才会按照height排序。换句话说:如果age列中每一个值都是唯一的,则不会按照height排序。

1.3按列位置排序

除了能用列名指出排序顺序外,ORDER BY 还支持按照相对列位置进行排序:

SELECT  id, name, age, height
FROM people
ORDER BY 3, 4;

SELECT后,第一个位置是id,第二个是name,然后第3个第4个是,age,height。所以ORDER BY 3, 4;就是用第3和第4个位置上的列名排序。效果等于ORDER BY age, height;

tips: 按列位置排序是,用来进行排序的列,必须在SELECT 清单中。

1.4指定排序方向

升序:默认或者ASC或者ASCENDING
降序:DESC或者DESCENDING
从商品表goods中筛选出商品id、价格price、商品名name,并按照price降序排列。(越贵的越放前边)

SELECT id, price, name 
FROM goods
ORDER BY price DESC;

先:按照price降序排列,
然后:相同price的商品,按照name升序排列。

SELECT id, price, name 
FROM goods
ORDER BY price DESC, name;

先:按照price降序排列,
然后:相同price的商品,按照name降序排列。

SELECT id, price, name 
FROM goods
ORDER BY price DESC, name DESC;

DESCDESCENDING的缩写,该关键字只应用到直接位于其前面的列名。

上一篇下一篇

猜你喜欢

热点阅读