У меня есть таблица с рекурсивной иерархией (т.е. ID, ParentID). Для любого элемента в этой иерархии я хочу иметь возможность вернуть список всего ВВЕРХ И ВНИЗ по иерархии вместе с уровнем для каждой строки. Предположим, что у родителя может быть только один ребенок.
Возьмем, к примеру, следующее:
ID ParentID
--------------
1 NULL
2 1
3 2
4 NULL
5 4
6 5
Учитывая идентификатор 1, 2 или 3, я хочу вернуть:
ID ParentID Level
-----------------------
1 NULL 1
2 1 2
3 2 3
Я делал это раньше, но не могу вспомнить как. Я знаю, что решение включает в себя CTE, я просто не могу понять это правильно! Любая помощь приветствуется.