排序 order by
所使用到的表
order by再sql语句中的用法:
select
...
from
...
where
...
order by
字段名
当我们查询出结果后,根据结果集中的某个字段进行排序,order by 字段名 排序方式(升序/降序)
单字段排序
查询出表中的ename字段并对其进行排序
select enamefrom emp order by ename;
这里所显示的ename 是按照字母(A-Z)的顺序来排列的,是升序,这也是默认情况下,我们没有设置排序是按照降序还是升序。
order by 字段名 desc; 降序排序列
order by 字段名 asc; 升序排列(默认)
查询员工姓名和工资字段的数据,并按照工资的升序/降序进行排列
select ename,sal from emp order by sal;
select ename,sal from emp order by sal asc;
select ename,sal from emp order by sal desc ;
多字段排序
当我们在进行数据查询的时候,不免会遇到两个数据相同的情况,这时候要想将他们分出个先后顺序就要借助其他字段进行排序了,需要使用到多字段排序
查询员工的名字和薪资,要求薪资按照升序排列,当薪资相同时,再按照名字升序排列
select
ename,sal
from
emp
order by
sal asc,ename asc;
在上面单使用sal字段进行升序排序时,FORD和SCOTT两人的工资相同,SCOTT排到了FORD之前。但这里我们使用sal和ename两个字段进行排序时,FORD排到了SCOTT之前,这是因为ename字段按照升序排列的原因。
根据字段位置排序,不建议,因为列的顺序可能发生变化,列顺序改变之后,数字代表的字段也就变了。
按照第二列数据进行排序
select ename,sal from emp order by 2 asc ;