Самый простой способ сделать рекурсивное самостоятельное соединение?

Какой самый простой способ сделать рекурсивное самосоединение в SQL Server? У меня есть такая таблица:

PersonID | Initials | ParentID
1          CJ         NULL
2          EB         1
3          MB         1
4          SW         2
5          YT         NULL
6          IS         5

И я хочу иметь возможность получать записи, относящиеся только к иерархии, начиная с конкретного человека. Поэтому, если бы я запросил иерархию CJ по PersonID = 1, я бы получил:

PersonID | Initials | ParentID
1          CJ         NULL
2          EB         1
3          MB         1
4          SW         2

И для EB я бы получил:

PersonID | Initials | ParentID
2          EB         1
4          SW         2

Я немного застрял в этом, не могу придумать, как это сделать, кроме ответа с фиксированной глубиной, основанного на связке соединений. Это будет так, как это происходит, потому что у нас не будет много уровней, но я бы хотел сделать это правильно

Спасибо! Крис.

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

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