ss:
--------------->
 select A字段
 from
 (select T.A字段,substr(A字段,Instr(A字段,'.',1)+1,Instr(A字段,'.',2)-1) as xm2 from table t)
 order by Length(xm2) desc,A字段

解决方案 »

  1.   

    或者把order by 改一下sql都試試:order by Length(xm2) desc,xm2
      

  2.   

    总有一款适合你:
     select A字段
     from
     (select A字段,
             substr(xm, 1, Instr(A字段, '.', 1) - 1) as xm1,
             substr(A字段, Instr(A字段, '.', 1) + 1, Instr(A字段, '.', 2) - 1) as xm2,
             substr(A字段, Instr(A字段, '.', 4) + 1) as xm3
      from table t)
      order by Length(xm1) desc,xm1,
              Length(xm2) desc, xm2,
              Length(xm3) desc, xm3
      

  3.   

    SQL>  select * from (
      2   select '1.1.1' as id from dual
      3   union
      4    select '1.10.1' as id from dual
      5   union
      6    select '1.2.1' as id from dual
      7    union
      8     select '1.11.1' as id from dual
      9     )
     10     order by substr(id, 1,instr(id,'.')-1), substr(id,instr(substr(id, instr(id,'.')+1),'.'),instr(substr(id, instr(id,'.')+1),'.')-1)
     11  /ID
    ------
    1.1.1
    1.2.1
    1.10.1
    1.11.1