如题,一个表table,存了三个字段
id name code 
1   xie  11-1
2   xi   11-2
………………
………………
100 ji   11-101
……………………
………………
109 j     11-109
110  xu   11-110
………………
n    ask  12-123
请问如何按照上面的方式排序
我的sql :select * from table order by code,得到结果(id和name我省略不写了)是
id    name  code
            11-1
            11-100
            11-101
……………………
            11-2
            11-200
很明显结果不是我想要。求解哈
PS下,本人DB2数据库。

解决方案 »

  1.   

    数据库没办法支持这么复杂的排序,自己写java代码实现,或者加排序用的字段
      

  2.   

    你的code字段可以分成两部分,“11-109”,11和109,你增加两个字段,分别存储11和109,排序时,先按照11的字段排序,再按照109的字段排序
      

  3.   

    ID是自增的话 不会变乱吧,删除的话 就是123  2没了 顺序也没变呀,就是13呗。修改的话,难道你修改ID也会变?
      

  4.   

    用sql,用函数把这个字段拆分成两截,分别排序?
      

  5.   

    select * from table order by len(code),code给他加个字符长度排,就可以了