Façon la plus simple de faire un appel récursif à l'auto-jointure?

Quelle est la façon la plus simple de faire un appel récursif à l'auto-jointure dans SQL Server? J'ai un tableau comme ceci:

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

Et je veux être en mesure d'obtenir les enregistrements uniquement liée à une hiérarchie qui commence avec une personne en particulier. Donc, Si j'ai demandé à CJ de la hiérarchie par PersonID=1 je voudrais obtenir:

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

Et de l'EB est que j'aimerais obtenir:

PersonID | Initials | ParentID
2          EB         1
4          SW         2

Je suis un peu coincé sur ce peut ne peut pas penser comment le faire en dehors d'une profondeur fixe de réponse basé sur un tas de jointures. Ce serait faire comme cela arrive parce que nous n'aurons pas beaucoup de niveaux, mais je voudrais le faire correctement.

Merci! Chris.

InformationsquelleAutor Chris | 2009-11-18