Oracle给查询结果增加序列号

在oracle中,需要加一个序列号,首先想到是用rownum这个关键字,比如sql如下

select rownum,t.* from table t

以上sql如果不增加排序,这个数据没有问题,一旦增加排序,序列号就错乱了

select rownum,t.* from table t order by t.stamp

解决方法如下:
第一种解决办法:

select  rownum,a.*  from (select t.* from table t order by t.stamp)  a

第二种解决办法:

select row_number() over (order by t.stamp) rn,t.*  from table t

个人更倾向于第二种

posted @ 2019-03-23 14:46  小海葵  阅读(30260)  评论(0编辑  收藏  举报