问题: 在oracle中查询sql时,如果我们要根据px (varchar类型) 字段内容对数据进行排序时: 如果px存的数字小于10:可以满足顺序排列 当px内存的数字大于10时:造成1,10,11,12,2的情况(因为根据字符来排序了) 解决: 将varchar转成number可以进行顺序排序: select * from TableName order by decode(trim(translate(px, '0123456789', ' ')), null, to_number(px));