有表 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.   

    栏位之间没得关联系,体现不出你所谓的大类小类,杂乱无章的感觉,如果有明显的看出大小类之差别   Oracle中可以用分析函数做排序
    over(partition by 大类别 order by 大类别 desc,name desc)
      

  2.   

    select name,id(一定要包含这两项)
     from table group by name,id
      

  3.   

    没看出来,你的大小类指的是哪2个字段
    id parentId?看你的例子也不像啊
      

  4.   

    是我没表达清楚,不好意思. 简单的说就是一个树查询,最顶级的就是parengtId为0的那个,我想要的效果就是出来一个树行的结构有层级的,每个层级都按自己的ordernum排序
      

  5.   

    SELECT T.*
      FROM NEWS_aT
     START WITH T.NODE = 1
    CONNECT BY T.F_NODE = PRIOR T.NODE
    我如果用树查询的话,查出来的结果各层级间没有按他们的编号排序如果加上 Order by t.ordernum;的话树形结构就被打乱了,变成只按编号排序了;
    我想插出来的是树形结果,但是1层的按1层的那个ordenum排序,2层的按2层的ordernum排序