点击蓝字|关注我们
每日一练:由恩墨学院资深讲师每日归纳一个数据库知识点,并设置相关的练习题以供读者巩固所学知识。
本文主要介绍 order by 子名。
语法
select expr from table
[where condition(s)]
[order by {colum , expr , numeric_position} [ asc | desc] ];
order by : 指定了被浏览行的顺序;
asc: 以升序排序,是默认的排序方式;
desc: 以降序排序;
对于空值的排序,可以使用 NULLS FIRST 或 NULLS LAST 来设置空值出现在最前边还是最后边。
整体框架
order by 子句
1. 列名:按照列的值排序
如果列的值是数值类型,那么默认按照数值的升序排,最小值先出现;
如果列的值是 Date 时间类型,那么默认按照时间的升序排,最小时间先出现;
如果列的值是字符,那么按照字母的顺序排序;
空值默认按照升序排序,显示在最后边,指定降序时,显示在最前边。
如:按照员工入职日期降序排序
SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC ;
2. 别名:别名如果加双引号了,在 order by 后边也要加双引号
如:
SELECT employee_id, last_name, salary*12 “Annsal” FROM employees ORDER BY “Annsal” ;
3. 列的位置号
如:以 select 后边的第三个列排序
SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY 3;
4. 多个列排序:先按部门号排序,然后在部门内部按照工资降序排序
如:
SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC;
练习题
问题:下面哪个语句关于 order by 子句是正确的?A)如果指定了按照位置号来排序,那么数值类型的数据会按降序排;B)对字符排序时,大小写是敏感的;C)只有在 select 子中指定的列,才能排序;D)在排序语句中,不会对空值进行处理。
答题贴士 /Answering Tips/
可以把答案以及解答思路发布在「墨天轮 modb.pro」平台,不定期会选取优秀答案送礼物;
(文章名称前缀可带上:恩墨学院 | )
当然也可以在墨天轮上搜索『每日一练 xxx』查看解题思路。