Linux 拨号vps windows公众号手机端

oracle rownum排序时有重复值怎么解决

lewis 9年前 (2016-10-17) 阅读数 8 #VPS/云服务器
文章标签 oracle

当使用ROWNUM对结果集进行排序时,可能会出现重复的值。这是因为ROWNUM是在查询结果返回后才进行计算的,所以在排序之前无法确定每个行的ROWNUM值。为了解决这个问题,可以使用子查询。
例如,假设有一个表名为"employees",有一个列名为"salary",你想对工资进行排序并获取前10名员工:

SELECT*FROM(

SELECT*FROMemployeesORDERBYsalaryDESC

)WHEREROWNUM<=10;

这个查询先对工资进行降序排序,然后将结果作为子查询,再使用ROWNUM进行筛选。这样可以确保排序后的结果正确,并且可以获取到前10名员工的数据。
需要注意的是,如果希望获取不重复的结果,可以使用DISTINCT关键字。例如:

SELECTDISTINCTsalaryFROM(

SELECT*FROMemployeesORDERBYsalaryDESC

)WHEREROWNUM<=10;

这样可以确保结果中只有不重复的工资值。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门