Oracle中对字符串类型的数字正确排序

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

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

Oracle中对字符串类型的数字正确排序

二、问题分析

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

三、解决方法

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

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

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

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

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

Oracle中对字符串类型的数字正确排序 

上一篇:CTF比赛中的数据格式化(采用Python语言)


下一篇:SQL--4--查--排序 order by (asc升序、desc降序)