对包含数字和字母的字符串列进行排序(Oracle SQL)

Sort String column which has numbers and Alphabets( Oracle SQL)

我想对可以包含数字和字母的字符串列进行排序。

SQL 脚本:

select distinct  a.UoA, b.rating , b.tot from omt_source a left join  
wlm_progress_Scored b
on a.UoA = b.UoA 
where a.UoA in (select UoA from UserAccess_dev
where trim(App_User) = lower(:APP_USER))
order by 
  regexp_substr(UoA, '^\D*') ,
  to_number(regexp_substr(UoA, '\d+'))--);

我目前得到的输出:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
23 
26B
26A
27 
28 
30 
31 
32 
33 
34B
34A

但是,我希望 2634 按此顺序排列

26A
26B
34A
34B

任何建议都会很有帮助 谢谢

如果您的第一个 order by 子句确保主要排序顺序基于 UoA 字段的数字部分,那么您的第二个 order by 子句实际上可能只是 UoA 字段本身。即

    order by 
      regexp_substr(UoA, '^\D*'), UoA;