oracle order by 语句用法

简介:

 在执行查询操作时,默认情况下会按照行数据插入的先后顺序来显示行数据,但在实际应用中经常需要对数据进行排序,以显示更直观的数据,数据排序用的就是ORDER BY子句。语法如下:

SELECT <*,column [alias],...> FROM table [WHERE condition[s]] [ORDER BY] expr [ASC|DESC];

1.升序排序

默认情况下,当使用ORDER BY执行排序操作时,数据以升序方式排序,也可以在排序列后指定ASC关键字。注意:当执行升序排序时,如果被排序列包含NULL值,那么NULL会显示在最后面。如:

SQL> SELECT ename,sal FROM emp WHERE deptno=30 ORDER BY sal;

2.降序排序

为了执行降序排序,必须要指定DESC关键字。注意:当执行降序排序时,如果排序列存在NULL值,那么NULL会显示在最前面。如:

SQL> SELECT ename,sal FROM emp WHERE deptno=30 ORDER BY sal DESC;

3.使用多列排序

当使用ORDER BY子句进行排序时,不仅可以基于单个列或单个表达式进行排序,也可以基于多个列或多个表达式,当以多个列或多个表达式进行排序时,首先按照第一个列或表达式进行,当第一个列或表达式存在相同数据时,然后按第二个列或表达式进行排序。如:

SQL> SELECT ename,sal,comm FROM emp WHERE deptno=30 ORDER BY sal ASC,comm DESC;

4.使用非选择列进行排序

当使用ORDER BY 子句执行排序操作时,多数情况下选择列表都会包含被排序列,但在实际情况下,选择列表可以不包含排序列。如:

SQL> SELECT ename,job FROM emp ORDER BY sal DESC;

5.使用列别名排序

如果为列或表达式定义了别名,那么当执行排序操作时,既可以使用列或表达式进行排序,也可以使用列别名进行排序。如:

SQL> SELECT ename,sal*12 AS "全年工资" FROM emp WHERE deptno=30 ORDER BY "全年工资" DESC;

6.使用列位置编号排序

当执行排序操作时,不仅可以指定列名,列别名进行排序,也可以按照列或表达式在选择列表中的位置进行排序。如果列名或表达式名称很长,那么使用列位置排序可以缩短排序语句的长度,另外当使用UNION,NNION ALL,INTERSECT,MINUS等集合操作合并查询结果时,如果列表的列名不同,并且希望进行排序,那么必须使用列位置。如:

SQL> SELECT ename,sal*12 FROM emp WHERE deptno=20 ORDER BY 2 DESC;

 

本文转自 chenming421  51CTO博客,原文链接:http://blog.51cto.com/wnqcmq/1093369


相关文章
|
6月前
|
Oracle 关系型数据库 数据库
Oracle中merge Into的用法
Oracle中merge Into的用法
|
16天前
|
SQL 存储 Oracle
Oracle用法
【10月更文挑战第15天】Oracle用法
36 5
|
6月前
|
SQL 存储 Oracle
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法(上)
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法
|
4月前
|
Oracle 关系型数据库 Java
Oracle数据库导入工具IMP详解与用法
Oracle数据库导入工具IMP详解与用法
|
5月前
|
Oracle 关系型数据库 Java
Oracle数据库导入工具IMP详解与用法
Oracle数据库导入工具IMP详解与用法
|
6月前
|
SQL 存储 Oracle
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法(下)
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法
|
Oracle 关系型数据库
Oracle中decode 以及ROW_NUMBER() OVER() 函数等其它相关函数用法
Oracle中decode 以及ROW_NUMBER() OVER() 函数等其它相关函数用法
126 0
|
6月前
|
SQL 移动开发 Oracle
避坑,Oracle中rownum与order by的执行顺序
避坑,Oracle中rownum与order by的执行顺序
|
SQL Oracle 关系型数据库
Oracle 中 Translate的用法
Oracle 中 Translate的用法
103 0
|
SQL Oracle 关系型数据库
【数据库】解决 oracle: SQL 错误 [900] [42000]: ORA-00900: 无效 SQL 语句
【数据库】解决 oracle: SQL 错误 [900] [42000]: ORA-00900: 无效 SQL 语句
2298 0
【数据库】解决 oracle: SQL 错误 [900] [42000]: ORA-00900: 无效 SQL 语句