单一字段排序
排序采用order by子句,order by后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by默认采用升序,如果存在where子句那么order by必须放到where语句的后面。
● 按照薪水由小到大排序(系统默认由小到大)
select * from emp order by sal;
● 取得job为MANAGER的员工,按照薪水由小到大排序(系统默认由小到大)
select * from emp where job='MANAGER' order by sal;
如果包含where语句order by必须放到where后面,如果没有where语句order by放到表的后面。
以下写法是错误的:
select * from emp order by sal where job='MANAGER';
● 按照多个字段排序,如:首先按照job排序,再按照sal排序
select * from emp order by job,sal;
● 手动指定按照薪水由小到大排序
select * from emp order by sal asc;
● 手动指定按照薪水由大到小排序
select * from emp order by sal desc;
● 按照job和薪水倒序
select * from emp order by job desc, sal desc;
如果采用多个字段排序,如果根据第一个字段排序重复了,会根据第二个字段排序。
● 按照薪水升序
select * from emp order by 6;
不建议使用此种方式,采用数字含义不明确,程序不健壮。