mysql5.7的rownumber写法

张开发
2026/4/15 8:07:33 15 分钟阅读

分享文章

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 多个字段排序保证顺序

更多文章