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