执行简单的 col1/col2 计算,然后使用 CONCAT
添加文字 %
符号后,我无法成功按顺序对它们进行排序。
最初我的排序结果DESC
就像
9%
8%
75%
65%
100%
更新后:
CASE WHEN ROUND(col1/col2 *100) = 100
THEN CONCAT(100, '%')
ELSE LPAD(CONCAT(ROUND(col1/col2 *100),'%'),3,'0')
END AS Percent
通过在个位数前面添加 0,我能够成功对个位数和两位数列进行排序,但 100 不合适
75%
65%
09%
08%
100%
想法?
最佳答案
似乎您已经将 %
符号添加到值中,因此您可以检索它们,而不使用 %
符号,然后对它们进行排序并添加回 %
符号。下面是正在运行并经过测试的 SQL 示例。
select concat(percentage, '%') -- add '%' sign
from (
select SUBSTRING_INDEX(percentage, '%', 1) percentage -- remove `%`
from percentage_sorting) t
order by percentage; -- order by values
关于mysql - 正确排序 CONCAT 值 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24516166/