排序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
通过上述两种方式,就可以实现多个字段排序了。