脚本如下:
create table gw_bom
(
exg_no varchar(30),
img_no varchar(30),
dec_cm number(18,5),
dec_dm number(18,5)
);insert into gw_bom(exg_no,img_no,dec_cm,dec_dm) values('P1','A1',10,12);
insert into gw_bom(exg_no,img_no,dec_cm,dec_dm) values('A1','B1',11,12);
insert into gw_bom(exg_no,img_no,dec_cm,dec_dm) values('B1','B11',14,12);
insert into gw_bom(exg_no,img_no,dec_cm,dec_dm) values('B1','B12',16,12);
insert into gw_bom(exg_no,img_no,dec_cm,dec_dm) values('A1','B2',12,12);
insert into gw_bom(exg_no,img_no,dec_cm,dec_dm) values('P1','A2',15,12);
insert into gw_bom(exg_no,img_no,dec_cm,dec_dm) values('A2','A21',11,12);
insert into gw_bom(exg_no,img_no,dec_cm,dec_dm) values('P1','A3',15,12);
commit;样例数据:
SELECT t.exg_no,t.img_no,t.dec_cm,level  from gw_bom t start with exg_no='P1' connect by  exg_no = PRIOR img_noP1 A1 10.00000 1
A1 B1 11.00000 2
B1 B11 14.00000 3
B1 B12 16.00000 3
A1 B2 12.00000 2
P1 A2 15.00000 1
A2 A21 11.00000 2
P1 A3 15.00000 1 
期望结果
P1 A1 10.00000 1  1*10
A1 B1 11.00000 2  1*10*11
B1 B11 14.00000 3  1*10*11*14
B1 B12 16.00000 3  1*10*11*16
A1 B2 12.00000 2  1*10*12
P1 A2 15.00000 1  1*15
A2 A21 11.00000 2  1*15*11
P1 A3 15.00000 1  1*15