一、使用【ORDER BY 字段 ASC】对字符串类型数字排序得不到想要的结果

SELECT 字段名称 FROM 表名称 ORDER BY 字段名称 ASC

二、问题分析

 因为排序的字段是字符串类型,所以【排序时字符从左向右依次比较】

三、解决方法

①使用Oracle中的【CAST】函数将字段转为数字类型然后再排序即可

//CAST函数转换字段类型
CAST(字段名称 AS 数字类型)

//比如:将Varchar字段BINN转为INTEGER类型
CAST(BINN AS INTEGER)

②解决开头的排序不正确的sql语句如下

SELECT 字段名称 FROM 表名称 ORDER BY CAST(字段名称 AS INTEGER) ASC

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐