求一个oracle 查询语句

star_887012 2010-08-30 07:19:51
有表 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
请 各位帮帮忙!!!!
...全文
75 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
star_887012 2010-08-30
  • 打赏
  • 举报
回复
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排序
star_887012 2010-08-30
  • 打赏
  • 举报
回复
是我没表达清楚,不好意思. 简单的说就是一个树查询,最顶级的就是parengtId为0的那个,我想要的效果就是出来一个树行的结构有层级的,每个层级都按自己的ordernum排序
cnwz 2010-08-30
  • 打赏
  • 举报
回复
没看出来,你的大小类指的是哪2个字段
id parentId?看你的例子也不像啊
chaoyugang 2010-08-30
  • 打赏
  • 举报
回复
select name,id(一定要包含这两项)
from table group by name,id
gelyon 2010-08-30
  • 打赏
  • 举报
回复
栏位之间没得关联系,体现不出你所谓的大类小类,杂乱无章的感觉,如果有明显的看出大小类之差别 Oracle中可以用分析函数做排序
over(partition by 大类别 order by 大类别 desc,name desc)

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧