SQL Oracle排序字符串(数字)和(带数字的字母)

我是oracle的新手,我遇到了问题. 我有一个名为file_id的列. 当我按顺序排序时,它会排序 11 10 100 11 11110 11412300 314200B14B170B18 编辑: 我希望这样排序. 1110111112311003004200B14B18 B170 下面的答案非常有效.只有我遇到的其他问题..我的记录是空

我是oracle的新手,我遇到了问题.

我有一个名为file_id的列.

当我按顺序排序时,它会排序

1
1 
10 
100 
11 
11
110 
114
12
300 
31
4200
B14
B170
B18

编辑:
我希望这样排序.

1
1
10
11
11
12
31
100
300
4200
B14
B18 
B170

下面的答案非常有效.只有我遇到的其他问题..我的记录是空白的.我怎么能在最后制作空白记录?

1 
1 
10 
11 
11 
12 
31 
100 
300 
4200 
BLANK 
BLANK 
BLANK 
BLANK 
BLANK 
B14 
B18 
B170

感谢您的帮助.

解决方法

select column 
from table
order by 
  regexp_substr(column,'^\D*') nulls first,to_number(regexp_substr(column,'\d+'))

fiddle

关于作者: dawei

【声明】:石家庄站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐