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的执行顺序遵循就近原则,谁在前面谁先执行。

猜你喜欢

转载自www.cnblogs.com/javalyy/p/9049534.html