在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
個人更傾向於第二種