在进行查询排序的时候,发现字段中是带有数字的字符串,如果按照正常排序的话会出现1万、10万、2万、20万、5万的结果,但是我需要的结果是1万、2万、5万、10万、20万的结果。用Oracle中自带的to_number(regexp_substr(字段,’[0-9]*[0-9]’),1)即可。如果order by 后面有多个字段,且需要进行函数处理的字段不是排在第一位,不加to_number的话,这个函数是没有效果的 ,如果紧跟着order by就可以不用to_number。
注意:如果这个字段中包含“5万-10万”,‘5万以下’这样的值,在进行排序的时候,即便使用函数,也不能完全实现排序的效果,结果会随机排序。
Oracle对带有数字的字符串排序
最新推荐文章于 2023-01-03 17:02:54 发布