Chinaunix首页 | 论坛 | 博客
  • 博客访问: 91908232
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-30 18:34:19

首先创建
一张表menu记录菜单的层级情况。
表结构如下:
menu_id number,
parent_id number,
menu_name nvarchar2(20)

插入数据:
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;

查询语句:
select rpad(' ',(level-1)*3)||menu_name from menu
connect by parent_id = prior menu_id
start with parent_id is null


connect by 子句定义表中的各个黄是如何相互联系的
start with 子句定义数据黄查询的初始起点
level 表示查询深度

阅读(164) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~