mysql对结果中数字内容的字符串进行排序

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去掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值