应该会有跟我一样的朋友有这样的需求,就是需要对select查询的集合先进行一次排序(如:按创建时间排序)然后让生成的rownum的顺序与排序后的顺序一致,但是用原始的rownum无法完成先排序后按排序后的顺序分页的需求,所以就用到了这个oracle函数ROW_NUMBER() OVER函数。
demo:
select t.*, ROW_NUMBER() OVER(order by createdate desc) rm from t
这样查询得到的rm 也就是rownum 就是根据创建时间createdate 倒序排序过后的顺序,分页的时候也就不会出现顺序错乱的问题。
这里说的比较简陋,不知道能不能帮到大家,希望可以吧,安啦!