ORACLE: Requete hierarchique SQL
Bonjour,
J’ai une table de la forme
Code:
1 2 3 4 5 6 7 8 9
|
pere | fils
A | B
A | C
A | D
A | D
C | E
F | G
F | H |
J’aimerais pouvoir extraire
Code:
1 2 3 4 5 6 7
|
pere | fils
A | E
A | B
A | D
F | G
F | H |
C’est à dire n’extraire que les racines et feuilles de chaque arbre présents dans la table
J’ai essayé de faire une requête de la forme :
Code:
1 2 3 4 5 6 7 8 9 10
|
SELECT
SYS_CONNECT_BY_PATH(pere,'/') AS arbo,
CONNECT_BY_ISLEAF AS IsLeaf,
pere,
fils,
LEVEL as niveau
FROM
matable
CONNECT BY NOCYCLE PRIOR fils = pere |
Le résultat n’est pas satisfaisant car la table n’est pas totalement hiérarchique (plusieurs pères)
Je pense qu’il faut faire une procedure avec boucle et curseurs avec une liste, mais c’est là que je bloque un peu
D’avance merci pour votre aide