Cómo agrupar relaciones jerárquicas en SQL Server
Tengo un nombre de columnaPadr yNiñ en mesaEjempl y debajo están los datos de la tabla
| Parent | Child |
|---------------------|------------------|
| 100 | 101 |
|---------------------|------------------|
| 101 | 102 |
|---------------------|------------------|
| 200 | 201 |
|---------------------|------------------|
| 103 | 102 |
|---------------------|------------------|
| 202 | 201 |
|---------------------|------------------|
Si doy la entrada como 100 debería obtener el resultado como 100,101,102,103 Ya que 100-> 101-> 102-> 103 y también si doy la entrada como 102 entonces debería dar el mismo resultado anterior. @ 102-> 101-> 100 y 102-> 103. Necesito lograr esto usando solo el Procedimiento almacenado.
Abajo está el código de muestra que estoy intentando
CREATE PROCEDURE GetAncestors(@thingID varchar(MAX))
AS
BEGIN
SET NOCOUNT ON;
WITH
CTE
AS
(
SELECT
Example.Parent, Example.Child
FROM Example
WHERE Parent = @thingID or Child = @thingID
UNION ALL
SELECT
Example.Parent, Example.Child
FROM
CTE
INNER JOIN Example ON Example.Parent = CTE.Child
)
SELECT
Parent AS Result
FROM CTE
UNION
SELECT
Child AS Result
FROM CTE
;
END
GO