mysql5.7的rownumber写法
db2中的语句select * from ( select rownumber() over (order by a.stdcno) as num , a.id ,b.cuno from t1 a ,t2 b where a.id b.id ) as Amysql5.7中的语句select cast(row_num : row_num 1 as char) AS num , A.* from (select row_num :0) r,( select a.id, b.cuno from t1 a, t2 b where a.id b.id order by a.stdcno ) as A )关键点1 采用cast(row_num : row_num 1 as char) 来替换rownumber()并将其放到最外层目的是为了先排序在赋值num序号保证序号有序性2 需要将over(order by a.stdcno) 放到mysql的最后where条件的后面3 借助(select row_num :0) r 实现num序号从0开始递增4 最后的结果可能还是不会跟db2中的一样比如当order by 后面的stdcno值是一样时mysql和db2的底层算法不一样排序的先后顺序可能就不一样这个是没办法做到完全一致的参考的方案在order by 后面引入id 多个字段排序保证顺序
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2519211.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!