J'ai un tableau avec 2 colonnes (id, childId) avec les données suivantes :
- 1, 2
- 2, 4
- 3, 5
- 4, 6
- 5, null
- 6, null
J'ai le CTE suivant qui récupère les enregistrements et cela fonctionne bien.
DECLARE @id TABLE (id int, childId int);
INSERT INTO @id SELECT 1, 2;
INSERT INTO @id SELECT 2, 4;
INSERT INTO @id SELECT 3, 5;
INSERT INTO @id SELECT 4, 6;
INSERT INTO @id SELECT 5, null;
INSERT INTO @id SELECT 6, null;
WITH cte AS
(
SELECT id, childId
FROM @id
WHERE id = 1
UNION ALL
SELECT b.id, b.childId
FROM @id b
INNER JOIN cte
ON b.id = cte.childId
)
SELECT * FROM cte
Cependant, j'aimerais ajouter les détails de l'ancre pour que les résultats ressemblent à ceci :
- 1, 2, null
- 2, 4, 1
- 4, 6, 1
- 6, null, 1
Ainsi, la troisième colonne est l'enregistrement d'ancrage principal.
Est-ce possible ?