Bonjour,

J’ai une table de la forme

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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