本周由于项目需求,要将oracle数据库迁移到mysql数据库中,众所周知,mysql的视图创建规则比较多,也没有oracle的一些函数,所以我在创建一个排序视图的时候就遇到了很大的问题,经过多次尝试,终于解决了,希望能给大家一些帮助!!!
mysql由于没有rank()函数,所以排名没有oracle那么简单,但是我们可以用子查询来做一个简单的排名,其中CURRENT_STORE字段是我的排序字段
这是我的sql
图中框起来的就是我的排序,这里的比较条件不能用>=或者<=,要不然排序的结果会已最后一个为准
这是排序的正确结果
这是用<=的错误结果
这里为什么+1呢?是因为我发现,如果子查询没有比最大的大的话,就会count出0,如图
显然,这不是我们需要的结果,所以+1!
登录 | 立即注册