Мы можем справиться с этим с помощью рекурсивного CTE без особых проблем.В приведенном ниже CTE первая половина является базовым условием, которое включает в себя те записи верхнего родительского элемента, которые сами не имеют родителя.Рекурсивная часть, которая является нижней половиной объединения, предназначена для всех дочерних записей.Мы ведем учет уровня, добавляя единицу к значению непосредственного родителя.
WITH cte AS (
SELECT ID, Name, Parent, 0 AS level
FROM yourTable
WHERE Parent IS NULL
UNION ALL
SELECT t1.ID, t1.Name, t1.Parent, t2.level + 1
FROM yourTable t1
INNER JOIN cte t2
ON t1.Parent = t2.ID
)
SELECT ID, Name, Parent, Level
FROM cte
ORDER BY ID;
Demo