打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
oracle 树查询 level用法
(2011-06-25 14:14:01)
 
标签:

杂谈


1.       创建表menu

create table MENU

(

  MENU_ID   NUMBERnot null,

  PARENT_ID NUMBER,

  MENU_NAMENVARCHAR2(20)

)

2.       插入数据

insert into MENU (MENU_ID, PARENT_ID, MENU_NAME)
values (1, null, 'AAAA');
insert into MENU (MENU_ID, PARENT_ID, MENU_NAME)
values (2, 1, 'BBBB');
insert into MENU (MENU_ID, PARENT_ID, MENU_NAME)
values (3, 1, 'CCCC');
insert into MENU (MENU_ID, PARENT_ID, MENU_NAME)
values (4, 1, 'DDDD');
insert into MENU (MENU_ID, PARENT_ID, MENU_NAME)
values (5, 2, 'EEEE');
insert into MENU (MENU_ID, PARENT_ID, MENU_NAME)
values (6, 2, 'FFFF');
insert into MENU (MENU_ID, PARENT_ID, MENU_NAME)
values (7, 2, 'GGGG');
insert into MENU (MENU_ID, PARENT_ID, MENU_NAME)
values (8, 3, 'HHHH');
commit;

3.       查询语句

select menu_id,rpad('',(level-1)*4)||menu_name from menu
connect by parent_id= prior menu_id
start with parent_id is null

显示出树的级别查询

select menu_id,rpad('',(level-1)*4)||menu_name,level from menu
connect by parent_id= prior menu_id
start with parent_id is null

参阅:

http://blog.ccidnet.com/blog.php?do=showone&uid=41414&type=blog&itemid=207639

说明:我们的树状属性一般都是在一条记录中记录一个当前节点的ID和这个节点的父ID来实现。但是一旦数据中出现了循环记录,如两个节点互为对方的父结点,系统就会报 ORA-01436错误(ORA-01436: 用户数据中的CONNECTBY 循环)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
开发一个新的模块---线索模块
SQL Server根据子节点查询所有父节点的代码示例
使用Excel生成insert语句
ON DUPLICATE KEY UPDATE,唯一索引或者主键插入重复修改记录
用js实现网页上模仿桌面右键菜单
树形结构表分页查询(闭包表)优化
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服