排序Oracle数据库多个字段排序实现方法(oracle多个字段)

排序Oracle数据库多个字段排序实现方法

Oracle数据库中, 当数据表的字段很多的情况下,想要进行排序时,只需按照步骤使用正确的语法,就可以实现排序。实现多个字段排序,有以下两种排序方式, 即:基于ORDER BY 和基于ROW_NUMBER()分析函数。下面我们就一一介绍:

(1)基于ORDER BY 的排序

主要通过order by 子句进行多个字段排序,通过该子句指定要排序字段,用逗号“,“分割,写法如下:

ORDER BY 字段1, 字段2, ……

下面给出一个例子, 首先从表READ_INFO中查出ID和S_NAME字段,然后按照S_NAME的的字母顺序,以及ID的数值降序排列。

SQL语句如下:

SELECT ID, S_NAME FROM READ_INFO ORDER BY S_NAME, ID desc;

(2)基于ROW_NUMBER()分析函数排序

在查询多个字段排序时,可以使用ROW_NUMBER()分析函数进行排序,函数在每行添加一列,显示结果的行号,语法格式如下:

ROW_NUMBER() OVER([PARTITION BY 分组字段]ORDER BY 排序字段[ASC/DESC])

下面给出一个例子, 首先从表READ_INFO中查出ID和S_NAME字段,然后按照S_NAME的的字母顺序,以及ID的数值降序排列。

SQL语句如下:

SELECT ID, S_NAME FROM (SELECT ROW_NUMBER() OVER (ORDER BY

S_NAME, ID desc) ROWNUMBER, ID, S_NAME FROM READ_INFO) T

WHERE ROWNUMBER > 0 ORDER BY ROWNUMBER

通过上述两种方式,就可以实现多个字段排序了。


数据运维技术 » 排序Oracle数据库多个字段排序实现方法(oracle多个字段)