Comment trouver tous les descendants en utilisant HierarchyID pour SQL Server
J'ai besoin de trouver tous les descendants d'une catégorie à l'aide HierarchyID
pour SQL Server
.
Je sais comment faire pour trouver directement les enfants mais je voudrais trouver les enfants de enfants de les enfants et ainsi de suite.
Est-il un moyen de faire cela en utilisant la HierarchyID
?
source d'informationauteur Luke101 | 2010-04-17
Vous devez vous connecter pour publier un commentaire.
Si vous avez la racine de l'arbre que vous voulez, ne pouvez-vous pas simplement utiliser:
Je vais assumer pour mon exemple, que votre table est quelque chose comme ce qui suit:
Si vous voulez que tous les descendants d'un nœud avec l'ID 3, vers le bas à un niveau max (à partir de la racine) de 5:
Si vous souhaitez 2 niveaux des enfants en vertu de la demande de nœud, vous devrez saisir le niveau de votre recherche nœud dans la première sélectionner et de modifier le rapport à quelque chose comme
Je suis un fan des expressions de table communes pour ce genre de requête parce que vous avez une certaine souplesse dans la possibilité de retourner seulement les enfants, les parents, ou les deux, selon la façon dont vous structurez votre code. Dans ce cas, je suis de retour d'une UNION des deux, juste pour exemple.