例如:
普通排序利用:order by 字段名 ASC
但是遇到有中文而且类型是varchar类型的结果就是这样
政采代(甲)字第0298号
政采代(甲)字第0421号
政采代(甲)字第1098号
政采代(甲)字第1267号(延续)
政采代(甲)字第1179号(延续)
但是我们要的结果应该是这样:
政采代(甲)字第0298号
政采代(甲)字第0421号
政采代(甲)字第1098号
政采代(甲)字第1179号(延续)
政采代(甲)字第1267号(延续)
解决办法:
利用oracle函数及正则表达式进行排序
order by to_number(regexp_substr(字段名,'[0-9]*[0-9]',1))

本文介绍了一种使用Oracle数据库的特定函数及正则表达式进行复杂字符串排序的方法,解决了含有数字和汉字混合的字段按数字大小排序的问题。
641

被折叠的 条评论
为什么被折叠?



