如果需要针对查询后的结果按照指定的数据列进行排序操作,就必须使用ORDER BY子句。
当使用查询操作的时候,默认情况下它会按照数据的插入顺序进行数据排序显示。
如果要针对指定的列内容实现排序,就必须采用ORDER BY子句完成。
SELECT [DISTINCT] * | 列名称 [别名],列名称 [别名],... FROM 表名称[别名] [WHERE 过滤条件(s)] [ORDER BY 字段 [ASC | DESC],字段 [ASC | DESC],...];
对于排序的方式有两种:
1.ASC:默认,不写也是ASC:按照升序的方式排列;
2.DESC:按照降序的方式排列;
范例:
1)查询所有的雇员信息,要求按照工资由高到低排序
SQL> SELECT * FROM emp ORDER BY sal DESC;
2)查询所有销售人员的信息,要求按照雇佣日期由早到晚排序。
SQL> SELECT * FROM emp WHERE job='SALESMAN' ORDER BY hiredate ASC;
3)要求按照工资由高到低排序,如果工资相同,则按照雇佣日期由早到晚排序
SQL> SELECT * FROM emp ORDER BY sal DESC,hiredate ASC;
4)查询每个雇员的编号、姓名、年薪,按照年薪由低到高排序。
SQL> SELECT empno,ename,sal*12 income FROM emp ORDER BY income DESC;
此时的程序可以正确调用SELECT定义的别名。在整个SQL查询结构之中,只有ORDER BY子句可以调用SELECT定义的别名。
总结
1.使用ORDER BY查询的时候,排序是在最后完成的
2.ORDER BY子句是最后一个执行的子句
3.在ORDER BY之中可以设置多个排序的字段
4.ORDER BY有两种排序模式:ASC、DESC
5.ORDER BY是唯一一个可以使用SELECT子句定义别名的子句