MagicBuzz | Bon, une fois de plus, en lisant 2 minutes la doc Oracle (je connaissais pas du tout le fonctionnement de CONECT BY, mais juste son existance, donc tu en savais autant que moi), et en décomposant tranquillement ton problème, je viens de le résoudre en quelques minutes...
(faites un effort des fois, surtout quand on vous met sur la bonne piste dès le départ hein !)
Script :
create table hierarchie (x number not null, y number null);
insert into hierarchie (x, y) values (1, null);
insert into hierarchie (x, y) values (2, 1);
insert into hierarchie (x, y) values (3, 1);
insert into hierarchie (x, y) values (4, 2);
insert into hierarchie (x, y) values (5, 2);
insert into hierarchie (x, y) values (6, 3);
insert into hierarchie (x, y) values (11, 4);
insert into hierarchie (x, y) values (12, 4);
insert into hierarchie (x, y) values (13, 4);
insert into hierarchie (x, y) values (14, 4);
insert into hierarchie (x, y) values (15, 5);
insert into hierarchie (x, y) values (16, 5);
insert into hierarchie (x, y) values (17, 5);
insert into hierarchie (x, y) values (18, 5);
insert into hierarchie (x, y) values (19, 6);
commit;
select *
from
(
select x
from hierarchie
start with x = 1 -- Changer cette valeur par le point d'entrée
connect by prior x = y
) h1
where not exists
(
select null
from hierarchie h2
where h2.y = h1.x
start with x = 1 -- Pas besoin de changer celle-là par contre
connect by prior x = y
);
|
Sortie :
create table hierarchie (x number not null, y number null)
Table created
insert into hierarchie (x, y) values (1, null)
1 row inserted
insert into hierarchie (x, y) values (2, 1)
1 row inserted
insert into hierarchie (x, y) values (3, 1)
1 row inserted
insert into hierarchie (x, y) values (4, 2)
1 row inserted
insert into hierarchie (x, y) values (5, 2)
1 row inserted
insert into hierarchie (x, y) values (6, 3)
1 row inserted
insert into hierarchie (x, y) values (11, 4)
1 row inserted
insert into hierarchie (x, y) values (12, 4)
1 row inserted
insert into hierarchie (x, y) values (13, 4)
1 row inserted
insert into hierarchie (x, y) values (14, 4)
1 row inserted
insert into hierarchie (x, y) values (15, 5)
1 row inserted
insert into hierarchie (x, y) values (16, 5)
1 row inserted
insert into hierarchie (x, y) values (17, 5)
1 row inserted
insert into hierarchie (x, y) values (18, 5)
1 row inserted
insert into hierarchie (x, y) values (19, 6)
1 row inserted
commit
Commit complete
select *
from
(
select x
from hierarchie
start with x = 1 -- Changer cette valeur par le point d'entrée
connect by prior x = y
) h1
where not exists
(
select null
from hierarchie h2
where h2.y = h1.x
start with x = 1 -- Pas besoin de changer celle-là par contre
connect by prior x = y
)
X
--
11
12
13
14
15
16
17
18
19
9 rows selected
|
 |