Étant donné le tableau T_Person (nom, parent) données contenantancêtres oracle dans les requêtes hiérarchiques
+--------+--------+ | name | parent | +--------+--------+ | john | peter | | peter | ronald | | ronald | george | | george | | +--------+--------+
on peut trouver des relations en utilisant cette requête:
select name, parent, LEVEL
from T_Person
connect by prior name = parent
start with parent is null;
le résultat serait:
+--------+--------+-------+ | name | parent | LEVEL | +--------+--------+-------+ | john | peter | 4 | | peter | ronald | 3 | | ronald | george | 2 | | george | | 1 | +--------+--------+-------+
C'est très bien jusqu'à présent. Mais je veux avoir un résultat contenant toutes les relations qui ressemble ainsi:
+--------+--------+----------------+ | name | parent | relation_level | +--------+--------+----------------+ | john | peter | 1 | | peter | ronald | 1 | | ronald | george | 1 | | john | ronald | 2 | | peter | george | 2 | | john | george | 3 | +--------+--------+----------------+
(relation_level: 1 = père, 2 = grand-père, 3 = grand-père grand et ainsi de suite)
Est-il un moyen rapide pour recevoir ce résultat, autre que sélectionner sur la table entière pour chaque niveau de relation?
http://stackoverflow.com/questions/1744705/oracle-hierarchical-query?rq=1 –