病毒安全知识,电脑网络技术,手工杀毒方法,答疑解决笔记

导航

« 远程桌面,您的凭据不工作Excel中的文本与数字转换 »

MySQL没有排名函数怎么办

  MySQL只有8.0以上版本才有排名函数,rank()、row_number()、dense_rank()等,查看版本号的语句是select versino(),比如版本象我在用的一要是5.7的话,就得另外想办法。最近在比一堆集装箱的TEU按进门时间顺序进行排名,集装箱分大小柜,一个小柜即20尺算1个TEU,非20尺的是大柜,一个大柜2个TEU,就是说一个大柜排名的话,要占两个名额,如下:

select  cont_no,

@rowrk := @rowrk + if(cont_size='20',1,2) rk

from (select @rowrk :=0)  rn , cont_in i

order by in_date

其中 (select @rowrk :=0)相当于一个变量声明,赋初值,from后面还能这样写:from (selet  @rowrk :=0, cont_no from cont_in order by in_date) i

然后用@rowrk := @rowrk + if(cont_size='20',1,2),每行计算,小柜加1,大柜加2,这样就完成了排名。

  如果只是按箱数排名,一箱一个名额,就只用@rowrk := @rowrk +1了。排名当然还有更多方式,占位不占位的,无非多加几个变量进行判断比较,这里就不多说了

MySQL没有排名函数怎么办


>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/2145.html

发表评论(无须注册,所有评论在审核通过后显示):

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  • 微信订阅号
    微信订阅

最新发表

本站出现的所有广告均不代表本人及本站观点立场 | 关于我 | 网站地图 | 联系邮箱 | 返回顶部
Copyright 2008-2020 www.stormcn.cn. All Rights Reserved. Powered By Z-Blog. 闽ICP备09000343号

闽公网安备 35010202000133号