组合WHERE子句,使用NOT 和 IN 操作符
如何使用SELECT 语句的
ORDER BY
子句
1.1排序数据
ORDER BY 子句取一个或多个列的名字,据此对输出进行排序。
SELECT name
FROM staff
ORDER BY name;
- 1.作用:指示DBMS软件对name列以字母顺序进行排序数据。
- 2.注意:在指定一条ORDER BY子句时,应该保证它是SELECT语句中最后一条句子。如果它不是最后的句子,将会出错。
- 3.提示:可以使用非选择列进行排序
通常,ORDER BY 子句使用的列将是为了显示而选择的列。但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的。
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;
DESC
是DESCENDING
的缩写,该关键字只应用到直接位于其前面的列名。
网友评论