oracle 默认管理员账号Oracle字符串、数字、特殊符号、排序

Oracle字符串、数字、特殊符号、排序

 

遇到问题解决后请务必记录下来,也许某时就用到了,总之丢不怕。 

话不多说,正T; 

需求(针对不同需求,自行变更): 

 

排序字符串 格式: 

字段     Test 

课程系数〔2013〕29号 

课程编号〔2012〕233号 

课程编排〔2013〕44号 

课程编排〔2012〕1号 

课程编排〔2012〕34号 

….. 

…….等 

要求排序出 

字段     Test 

课程编号〔2012〕233号 

课程编排〔2013〕44号 

课程编排〔2012〕34号 

课程系数〔2013〕29号 

课程编排〔2012〕1号 

 

经过一番测试和前辈们的总结,可用方法如下 

Sql代码  

to_number(translate(Test, '0123456789' || Test, '0123456789')) desc  

 

亲们也可以使用这种 

Sql代码  

to_number(  

          substr(Test,instr(Test, '〕') + 1,  

          length(Test) -(instr(Test, '〕') + 1))  

         ) desc  

 

这种情况计算复制,而且对于数字+字符串任意组合将出现排序不正确的情况: 

如 

———————————– 

税204号 

税205号 

税206号 

税207号 

这样的话将排序结果为:&nboracle账号sp;

税204号 

税205号 

税207号 

税206号 

———————————– 

此条目发表在oracle metalink账号分类目录,贴了, , , 标签。将固定链接加入收藏夹。