select ascii('三月')-ascii('一月') from dual .
转换成ascii码然后计算.

解决方案 »

  1.   

    select to_number(rtrim(month,'月')) from dual;
      

  2.   

    按月份来排序比较麻烦,to_date('一月',mon)再比较,不知道行不行
    楼上那样的作法是有问题的,比如十二月怎么处理?
     dinya2003() 的方法和直接比较有什么区别?
      

  3.   

    最好是建立一张MAPPING的表,从表里找出大小来。
      

  4.   

    你可以decode一下,把月份转为数字,不过要进行嵌套,有点麻烦:   decode(month,'一月','A',decode(month,'二月','B',decode(......))) serial_no,month   你就可以按照serial_no来进行排序了.
      

  5.   

    MONTH字段是什么类型?
    如果是date类型,那简单,如果是字符串,datafrog(frog)的方法未必不可!
      

  6.   

    SQL> select *from tab_month;A
    ------------------------------
    一月
    二月
    十二月
    四月
    SQL> select *from tab_month order by decode(a,'四月',4,'一月',1,'二月',2,12);A
    ------------------------------
    一月
    二月
    四月
    十二月
    参考datafrog(frog)的。楼主可以参考一下不知道是否可行
      

  7.   

    SQL> select *from tab_month order by decode(a,'四月',4,'一月',1,'二月',2,12);A
    ------------------------------
    一月
    二月
    四月
    十二月