在一个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。