有一组数据需要按照百分比排序,但是例如23.52%是存为字符串的,而不是0.2352,如果直接排序是按照字母排序。
考虑先去掉百分号
去掉百分号,即去掉最后一个字符,方法为
substring(columnName,1,length(colunName)-1),这样去掉了最后一个字符,如果以他排序,则为:1
select * from Table order by substring(columnName,1,length(colunName)-1);
但是这样做依旧是按照字母排序,因为还是个字符串,所以需要转化为数字。
转化数字简单方法
1 | select * from Table order by columnName+0; |
这样就将字段强转为数字类型了,所以如果是按照百分比的数字顺序排序,可以写为:1
select * from Table order by substring(columnName,1,length(columnName)-1)+0;