在sql中使用order by实现排序出错问题

因为本人正在学习数据库阶段,所以我会把我遇到的问题和一些我已经解决了的例子放上来,仅供参考~

1.一般情况下,我们在命令行里使用order by来进行排序。但存在一个问题,就算我们进行了排序,还是会出现错误,就拿下面这个例子来说,在这里插入图片描述按照alexa栏进行升序排列,但排序过后却变成了这个样子,在这里插入图片描述噔噔噔?这个3是怎么回事,怎么不听话,使用的语句没有错啊,实际上,此处的alexa是varchar类型的,在使用order by进行排序时,会自动按照字符串排序的方式,1开头的排在前面,然后再排2开头的,3,4,5······
2.要想按照数值排序,就得先将字符串类型改为数值类型,我百度过,都说的是将order by ASC改为order by convert(int ,alexa)或者order by cast(alexa as int),但实际上我试验了,还是报错,不知道为什么,
后来我考虑到数值类型除了int,还有其他的,我就试了一下decimal,decimal表示的是精度值,百度上说当用 int类型会有溢出时,可以用 decimal 类型进行处理,把结果可以用 convert 或是 cast 进行转换。
此时就可以了,结果如下图显示:在这里插入图片描述
  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值