oracle查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDERBY

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

oracle查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDERBY

oracle查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDER BY,一些练习题

关键字:oracle查询结果排序asc desc升序降序多列order by一些练习题

查询结果的排序

显示EMP表中不同的部门编号。

如果要在查询的同时排序显示结果,可以使用如下的语句:

Sql代码

SELECT字段列表FROM表名WHERE条件

ORDER BY字段名1[ASC|DESC][,字段名2[ASC|DESC]...];

SELECT字段列表FROM表名WHERE条件

ORDER BY字段名1[ASC|DESC][,字段名2[ASC|DESC]...];

ORDER BY从句后跟要排序的列。ORDER BY从句出现在SELECT语句的最后。

排序有升序和降序之分,ASC表示升序排序,DESC表示降序排序。如果不指明排序顺序,默认的排序顺序为升序ASC。如果要降序,必须书写DESC关键字

1.升序排序

【训练1】查询雇员姓名和工资,并按工资从小到大排序。

输入并执行查询:

Sql代码

SELECT ename,sal FROM emp ORDER BY sal;

SELECT ename,sal FROM emp ORDER BY sal;

执行结果为:

Sql代码

ENAME SAL

---------------------------------

SMITH800

JAMES950

ENAME SAL

---------------------------------

SMITH800

JAMES950

注意:若省略ASC和DESC,则默认为ASC,即升序排序。2.降序排序

【训练2】查询雇员姓名和雇佣日期,并按雇佣日期排序,后雇佣的先显示。

输入并执行查询:

Sql代码

SELECT ename,hiredate FROM emp ORDER BY hiredate DESC;

SELECT ename,hiredate FROM emp ORDER BY hiredate DESC;

结果如下:

Sql代码

ENAME HIREDATE

------------------------------------

ADAMS23-5月-87

SCOTT19-4月-87

MILLER23-1月-82

JAMES03-12月-81

FORD03-12月-81

ENAME HIREDATE

------------------------------------

ADAMS23-5月-87

SCOTT19-4月-87

MILLER23-1月-82

JAMES03-12月-81

FORD03-12月-81

注意:DESC表示降序排序,不能省略。

3.多列排序

可以按多列进行排序,先按第一列,然后按第二列、第三列......。

【训练3】查询雇员信息,先按部门从小到大排序,再按雇佣时间的先后排序。

输入并执行查询:

Sql代码

SELECT ename,deptno,hiredate FROM emp ORDER BY deptno,hiredate;

SELECT ename,deptno,hiredate FROM emp ORDER BY deptno,hiredate;

结果如下:

Sql代码

ENAME DEPTNO HIREDATE

------------------------------------------------

CLARK1009-6月-81

KING1017-11月-81

MILLER1023-1月-82

SMITH2017-12月-80

JONES2002-4月-81

FORD2003-12月-81

SCOTT2019-4月-87

ENAME DEPTNO HIREDATE

------------------------------------------------

CLARK1009-6月-81

KING1017-11月-81

MILLER1023-1月-82

SMITH2017-12月-80

JONES2002-4月-81

FORD2003-12月-81

SCOTT2019-4月-87

说明:该排序是先按部门升序排序,部门相同的情况下,再按雇佣时间升序排序。

4.在排序中使用别名

如果要对计算列排序,可以为计算列指定别名,然后按别名排序。

【训练4】按工资和工作月份的乘积排序。

输入并执行查询:

Sql代码

SELECT empno,ename,sal*Months_between(sysdate,hiredate)AS total FROM emp

ORDER BY total;

SELECT empno,ename,sal*Months_between(sysdate,hiredate)AS total FROM emp

ORDER BY total;

执行结果为:

Sql代码

EMPNO ENAME TOTAL

相关文档
最新文档