https://www.red-gate.com/simple-talk/sql/t-sql-programming/sql-graph-objects-sql-server-2017-good-bad/

я есть название столбцародитель а такжеребенок в таблицепример и ниже приведены данные таблицы

|     Parent          |     Child        |
|---------------------|------------------|
|      100            |      101         |
|---------------------|------------------|
|      101            |      102         |
|---------------------|------------------|
|      200            |     201          |
|---------------------|------------------|
|      103            |      102         |
|---------------------|------------------|
|      202            |      201         |
|---------------------|------------------|

Если я дам вход как100 я должен получить результат как100101102103 поскольку100-> 101-> 102-> 103 а также, если я дам вход как102 тогда это должно дать тот же самый результат выше.102-> 101-> 100 и 102-> 103, Мне нужно добиться этого, используя только хранимую процедуру.

Ниже приведен пример кода, который я пытаюсь

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

Ответы на вопрос(1)

Ваш ответ на вопрос