rownum和order by的执行顺序问题

 

SQL中rownum和order by的执行顺序的问题 : 在一个SQL中,如果同时使用rownum和order by,会有一个先后顺序的问题。

 

比如select id1,id2 from t_tablename where rownum<3 order by c_date desc ,这个语句会先从结果集中取前三条记录,再对这3天记录按日期排序。如果设计者向先对日期排序,再取前三天记录,那么就不会得到正确的结果。

所以rownum和order by一起使用的时候一定要注意的执行顺序的问题。

 

这句可以这样实现select id1,id2 from (select id1,id2 from t_tablename order by c_date desc) where rownum<3。

 

总结  :

        rownum和order by的执行顺序遵循就近原则,谁在前面谁先执行。

posted @ 2018-05-17 10:02  java懒洋洋  阅读(861)  评论(0编辑  收藏  举报