Je voulais trouver le type topologique d'un DAG.Pouvons-nous utiliser la sortie d'une requête récursive dans une autre requête récursive?
create table topo(
v1 int,
v2 int
);
Insert into topo values (1,3),(2,5),(3,4),(4,5),(4,6),(5,7),(6,5),(7,null)
WITH RECURSIVE path(S,d) AS(
select t1.v1, 0 from topo t1 left outer join topo as t2 on t1.v1=t2.v2
where t2.v2 IS null
UNION ALL
select distinct t1.v2, path.d + 1 from path inner join topo as t1 on
t1.v1=path.S
)
select S from path group by S order by MAX(d);
Ce code donne la sortie de l'ordre topologique d'un graphe. Maintenant, je veux utiliser cette sortie dans une autre requête récursive pour trouver le chemin d'un sommet à l'autre. Puis-je utiliser la sortie générée par ce code dans une autre requête récursive?
J'essayais de le faire normalement, mais la sortie montrait une erreur.
Pourriez-vous obtenir ce chemin en ajoutant un nouveau champ au CTE récursif existant? – JNevill
Comment? Supposons que je veux obtenir le chemin de 3 à 7. Est-ce possible sans écrire une autre requête récursive? – user3503711