ORACLE 表里  一个varchar2字段里是这样的数据“hao111” 
“hao112”
“hao113”
按照后面那个  “111”,“112” 来排序  怎么排序?后面的数字 不光是三位   1位 2位  3位  都有的!!!在线等  谢谢

解决方案 »

  1.   

    order by to_number(substr( column_name ,4))
      

  2.   

    利用substr函数截取从第四个字符开始的的字符子串转化为数字类型进行排序
    我写的测试例子:供参考 create table test_user
    (
    id int,
    name varchar2(10)
    );
    insert into test_user
    select '1','hao1' from dual
    union all 
    select '2','hao111' from dual
    union all 
    select '3','hao1102' from dual
    union all 
    select '4','hao113' from dual;select name from test_user  order by to_number(substr( name ,4))
    测试结果:1 hao1
    2 hao111
    3 hao113
    4 hao1102