rownum不支持order by 的,因为rownum是在排序之前取值的。

所以你有了order by ,在去取rownum,rownum会出现混乱的数据结果。


解决方案:要先order by 之后,再使用rownum;

如下这样的

select rownum,s.* from (select * from 表明 order by 字段) s ;