在需求中,有时候会需要在sql中加上rownum序号列,如果sql中有排序得语句,那么就会发现查出的数据会导致混乱如下
因为sql会有执行顺序得,如果存在rownum序号列和排序,优先增加序号列,然后在排序,这样会导致上面得结果,解决办法就是套用一个子查询,让子查询先排序之后,再加上rownum序号列。
//rownum混乱
select rownum,la.* from laagent la where branchtype='A' order by birthday
//rownum不混乱
select rownum,l.* from (select * from laagent la where branchtype='A' order by birthday) l