Oracle入门之order by排序

2017-01-09 14:06:01来源:网络收集作者:管理员人点击

第七城市th7cn
ORDER BY子句
使用 ORDER BY 子句排序
ASC(ascend): 升序
DESC(descend): 降序
ORDER BY 子句在SELECT语句的结尾。
order by后面+列名、 表达式 、别名 、序号
一般套路
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date ;
select ....
from ...
where ...
order by ...
升序排列

默认就是升序!


1select *
2from emp
3* order by sal asc
SQL> /
EMPNO ENAMEJOBMGR HIREDATESALCOMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITHCLERK7902 17-12月-80 80020
7900 JAMESCLERK7698 03-12月-81 95030
7876 ADAMSCLERK7788 23-5月 -87110020
7521 WARDSALESMAN 7698 22-2月 -811250 50030
7654 MARTIN SALESMAN 7698 28-9月 -811250140030
7934 MILLER CLERK7782 23-1月 -82130010
7844 TURNER SALESMAN 7698 08-9月 -811500 030
7499 ALLENSALESMAN 7698 20-2月 -811600 30030
7782 CLARKMANAGER7839 09-6月 -81245010
7698 BLAKEMANAGER7839 01-5月 -81285030
7566 JONESMANAGER7839 02-4月 -81297520
7788 SCOTTANALYST7566 19-4月 -87300020
7902 FORDANALYST7566 03-12月-81300020
7839 KINGPRESIDENT 17-11月-81500010
降序排列
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC ;
多个列排序
可以使用不在SELECT 列表中的列排序

按照ORDER BY 列表的顺序排序。
先按照第一个排序,如果相同,使用第二项进行更精细的排序。


如果多个列中 有desc修饰,只作用于最近的那一列


select *
from emp
order by deptno asc, sal asc
select *
from emp
order by deptno asc, sal desc
别名排序
SQL> ed
Wrote file afiedt.buf
1select ename,empno,sal*12 sal_sum
2from emp
3* order by sal_sum
SQL> /

关于别名的补充:汉子要加双引号,字符串貌似不能加!是否与当前Linux用户的bashrc有关有待验证!


排序的规则
可以按照select语句中的列名排序
可以按照列名的别名排序
可以按照select语句中的列名的顺序值排序
如果要按照多列进行排序,则规则是先按照第一列排序,如果相同,则按照第二列排序;以此类推
排序中的空值

排序的时,如何将null排在最后.


select *
from emp
order by comm desc
nulls last;

nulls last 不管如何排序,都把空放在下面!

第七城市th7cn

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台