树表更新分支最大级数的问题

nickycheng 2006-10-09 05:43:01
现在有这么个树表

create table MENU_INFO
(
ID NUMBER(9) not null,--序号
MENU VARCHAR2(40) not null,--菜单编码
MENU_NAME VARCHAR2(40),--菜单名称
FATHER_MENU VARCHAR2(40),--父菜单编码
STEP NUMBER(9),--菜单级数
MAX_STEP NUMBER(9)--该分支最大级数
)


现在我已经写出更新STEP列的SQL语句:
update menu_info b
set step = (select a.nstep
from (select id, step, (level - 1) nstep
from menu_info
start with father_menu = '0'
connect by father_menu = prior menu) a
where a.id = b.id);


请问怎么写更新MAX_STEP列的SQL语句?
...全文
195 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nickycheng 2006-10-11
  • 打赏
  • 举报
回复
update ussd_menu_info b set max_step = (
select max(step) from ussd_menu_info
start with id=b.id connect by father_menu=prior menu)

好吧,我承认自己没有仔细想过就来问
nickycheng 2006-10-10
  • 打赏
  • 举报
回复
nickycheng 2006-10-10
  • 打赏
  • 举报
回复
菜单级数是指当前节点位于树的第几层上,比如根节点级数就是0,根节点的子节点级数就是1

该分支的最大级数: 假设有一个节点,遍历它的所有子节点,找到最大的菜单级数,这个级数就是这个分支的最大级数。

@_@不知看懂了没,偶表达不是很好
Eric_1999 2006-10-10
  • 打赏
  • 举报
回复
不是很懂。
STEP NUMBER(9),--菜单级数
MAX_STEP NUMBER(9)--该分支最大级数
有什么不同?

17,086

社区成员

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

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