--Oracle 生成树形菜单,sql语句
表结构
create table M_AREA
(
FID INTEGER not null,
FPARENTID INTEGER not null,
FNAME VARCHAR2(50) not null,
FLAT NUMBER(20,14),
FLON NUMBER(20,14),
FMAPBAG VARCHAR2(20),
ISBASEBLOCK NUMBER(1),
FLATLON VARCHAR2(20)
)
select A.FID, lpad(' ', level * 5, '--') || A.FNAME FNAME
from (select B.FID, B.FNAME, B.FPARENTID from M_Area B where 1 = 1) A
connect by A.FPARENTID = prior A.FID
start with A.FPARENTID = 0;
--输出结果如下:
1 14 深圳
2 15 ----- 宝安
3 16 ----- 福田
4 17 ----- 盐田
5 21 ----- 龙岗
6 20 ----- 南山
7 22 ----- 罗湖
8 1 广州
9 3 ----- 越秀
10 4 ----- 荔湾
11 5 ----- 海珠
12 6 ----- 天河
13 7 ----- 黄埔
14 8 ----- 萝岗
15 9 ----- 番禺
16 10 ----- 花都
17 11 ----- 南沙
18 12 ----- 从化
19 13 ----- 增城
20 2 ----- 白云