本来是想 A1 A2 B3 C4 D1 先按照英文字母排序,在按照数字排序,个人感觉这样行不通(有大佬的请告诉一下,谢谢),所以我用了映射,比如 A --> 1000 B-->1010 这样就可以用数字排序了
order by
to_number(regexp_substr(排序的字段,'[0-9]*[0-9]',1)) asc
to_number() 这个可以把字符串类型转成数字
regexp_substr() 切割函数
括号中的
[^.] -->代表除了“.”以外的全部字段
+ -->表示匹配1次以上
1 -->表示从第一个“.”开始
2 -->表示匹配到的第二个字段