当前位置:数据库 > 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号 
这样的话将排序结果为: 
税204号 
税205号 
税207号 
税206号 
----------------------------------- 
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,