最近太忙了,遇到很多问题都没有时间整理,准备今明两天抽空一起记录下
问题描述
今天先记录一个昨天遇到的排序问题
先看问题,文件名种带有数字开头的,排序是按照第一个字符排序的,即
0、1、10、11
正常时 0、1、2、3 这种
+ 0 排序
网上搜了可以通过 +0 的方式按照数字排序
即 改成 ORDER BY CAST(A.file_name AS DECIMAL) + 0 ASC;
能解决部分,排序新的结果如下
比之前稍微好点点,依然不理想
正则和+0组合排序
上面不理想,主要是非数字的排序到前面去了,而且0夹在了中间,不太理想
解决办法,是把非数字排序到后面,然后再按照数字顺序排序
ORDER BY A.file_name regexp "^[0-9]" desc , CAST(A.file_name AS DECIMAL) + 0 ASC
看效果,完美!
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏