关于SQL对数值类型的字符串进行排序问题

一、博客背景

今天在做毕设,需要排序,但是结果令我大跌眼镜。
在这里插入图片描述
这四不像的排序是什么玩意

二、问题来源及解决方案

问题来源是这样的,首先我的house_size的类型不是数值型,是字符串型。
在这里插入图片描述
那么排序的时候它就是这样的,比如:1开头不管多少位绝对不可以大于2开头的,同一个开头的就看第二个,同样的原理,上边例子就是110不可能大于30、31、35,但30跟31都是同一个开头,那么看第二位,0小于1所以30小于31。那么怎么解决呢。
我们需要对house_size在排序的时候强转成数值型。
用sql的CAST函数
语法:CAST (expression AS data_type)
第一个参数为要强转的列名,第二个为数据类型
所以结果为:
在这里插入图片描述