有表 a(id,parentId,name,ordernum);
 id parentId name ordernum
 1      0    门户     1
 2      1    法制     1
 3      1    图片     2
 4      1    游戏     3
 5      2    法制1    1
 6      2    法制2    2
 7      3    图片1    1
 8      4    游戏1    1求一个 sql语句 查出来的 效果是 按大类的编号先排序,一个大类下的小类再按自己的编号排序,如下面的效果:
id parentId name ordernum
 1     0    门户    1
 2     1    法制    1
 5     2    法制1   1
 6     2    法制2   2
 3     1    图片    2
 7     3    图片1   1
 4     1    游戏    3
 8     4   游戏1    1
 请 各位帮帮忙!!!!

解决方案 »

  1.   

    select * from a order by name,ordernum asc
      

  2.   

    select * from a order by name,ordernum asc
      

  3.   

    select * from a order by name,ordernum asc
      

  4.   

    楼主,你说这个大类的编号是啥,小类的编码又是啥? asc的话没必要写的啊,默认就是按asc来排序的
      

  5.   

    上面的表parentId就是父id,ordernum就是排序编号,上面的门户就是最大的因为parentId是0,法制的parentId是1,就属于门户下,以此类推,就是查询出来的结果是那种树类型的,但是要按ordernum排序
      

  6.   

    SELECT T.*
      FROM NEWS_aT
     START WITH T.NODE = 1
    CONNECT BY T.F_NODE = PRIOR T.NODE;我如果用树查询的话,查出来的结果是我想要的,但是就是没有按他们的编号排序,
    SELECT T.*
      FROM NEWS_aT
     START WITH T.NODE = 1
    CONNECT BY T.F_NODE = PRIOR T.NODE Order by t.ordernum;
     这样的话,是按排序编号了,但是不是树形结构了