1.sql语句(在排序字段后加0即可变成数字进行排序)
select * from student order by score+0 desc
2.说明
需求:将“90.00”这样的varchar转成数字类型进行排序
student表中的score是varchar类型(为了演示故意这样设计,也可以将“分数”想成“型号”)
其中存在诸如“100” 、 “90” 等等的分数
如果直接使用score进行desc排序的话,“90”必定会在“100”的前面
这样的排序就没意义了
至于为何要+0,而不是使用cast、convert等转成数字类型
是因为cast、convert会将“90.00”这种带有精确的字符转成90这样的整数
我们要的效果是100.00、90.00、80.00这样的顺序排,且结果不能将整数后面的.00去掉。